爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 7509|回复: 13

[源程序] 写的一段生成2013年日期列表的矩阵,求助错误在哪里??

[复制链接]

新浪微博达人勋

发表于 2013-11-14 15:40:12 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
拟用代码生成一个2013年日期列表的矩阵
我是这样写的(先不考虑大小月的关系):
k=1;
for i=1:12;
for j=1:31;
a(k,1)=strcat(‘2013’,num2str(i),num2str(j));
k=k+1;
end
end
可是运行出错,提示:
a(k,1)=strcat(‘2013’,num2str(i),num2str(j));
               |
Error: The input character is not valid in MATLAB statements or expressions.
表达式有问题??
求高手解答。。。。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-11-14 16:00:50 | 显示全部楼层
a不应该用cell数组?a(k,1) --->  a{k,1}

PS: 俺的头像好有针对性
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-11-14 16:32:07 | 显示全部楼层
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-11-14 16:33:30 | 显示全部楼层
Delta 发表于 2013-11-14 16:00
a不应该用cell数组?a(k,1) --->  a{k,1}

PS: 俺的头像好有针对性

楼上正解,你俩很搭~
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-11-14 17:43:27 | 显示全部楼层
k=1;
for i=1:12;
for j=1:31;
if (i<10)
yue=strcat('0',num2str(i));
else
yue=num2str(i);
end
if(j<10)
ri=strcat('0',num2str(j));
else
ri=num2str(j);
end
a{k,1}=strcat('2013',yue,ri);
end
k=k+1;
end
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-11-14 17:43:49 | 显示全部楼层
改成这个代码了
大家帮我看一下
为什么还是有问题
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-11-15 09:27:35 | 显示全部楼层
本帖最后由 Delta 于 2013-11-15 09:28 编辑

是想得到下面代码的结果?
k=1;
for i=1:12;

     if  (i<10)
        yue=strcat('0',num2str(i));
     else
        yue=num2str(i);
     end

     for  j=1:31;
          if (j<10)
             ri=strcat('0',num2str(j));
          else
             ri=num2str(j);
          end

          a{k,1}=strcat('2013',yue,ri);

          k=k+1;
      end

end
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-11-15 10:57:44 | 显示全部楼层
Delta 发表于 2013-11-15 09:27
是想得到下面代码的结果?
k=1;
for i=1:12;

哥们牛逼啊
你写的这段代码条理比我清晰多了
看来朕还得更加努力去学习学习。。。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-11-15 11:17:42 | 显示全部楼层
k=1;
for i=1:12;

      if  (i<10)
         yue=strcat('0',num2str(i));
      else
         yue=num2str(i);
      end


if (i==4|i==6|i==9|i==6|i==11)
      for  j=1:30;
           if (j<10)
              ri=strcat('0',num2str(j));
           else
              ri=num2str(j);
           end

elseif (i==2)
      for  j=1:28;
           if (j<10)
              ri=strcat('0',num2str(j));
           else
              ri=num2str(j);
           end

else
      for  j=1:31;
           if (j<10)
              ri=strcat('0',num2str(j));
           else
              ri=num2str(j);
           end
end

           a{k,1}=strcat('2013',yue,ri);

           k=k+1;
       end

end

现在又换这个了
还是出错
看来学门语言不容易啊。。。。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-11-15 12:46:00 | 显示全部楼层
用num2str(i,'%02d')能够省下很多代码!
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表