作者RachelMcAdam (瑞秋卖灯丝)
看板MATLAB
标题[请益] num2str ' '的位置?
时间Sat Mar 1 19:43:25 2014
各位板友大家好
小弟对於num2str和eval写法有点疑惑,时常跑不出来
譬如我想要求矩阵M1的标准差、M2的标准差...M40的标准差,纪录在STD的矩阵:
STD=[]
for r = 1:1:40;
caculate = ['STD =[STD, std(M' num2str(r)')]'];
eval(caculate)
end
试了很多次不同的写法,不过一直错误
请问要怎麽写才对呢?
另外 num2str的 ' ',要包涵任何文字的地方吗?
谢谢!
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 143.167.227.230
※ 编辑: RachelMcAdam 来自: 143.167.227.230 (03/01 19:45)
1F:推 profyang:caculate = ['STD =[STD, std(M',num2str(r),')]']; 03/01 23:04
2F:推 profyang:阿btw...你calculate拼错了= = 我照你复制也拼错 不过这 03/01 23:07
3F:→ profyang:不是重点= = 03/01 23:07
4F:→ profyang:重点在於 num2str出来的已经是str, 而要把两个字串串在一 03/01 23:09
5F:→ profyang:起最直接的写法就是 [str1,str2]这样 所以你的形式就应该 03/01 23:09
6F:→ profyang:要是['blablabla',num2str(r),'blabla']这样 03/01 23:09
7F:推 profyang:另外推一个等校的做法: 03/01 23:14
8F:→ profyang:calculate = sprintf('STD =[STD, std(M%d)]',1); 03/01 23:14
9F:→ profyang:calculate = sprintf('STD =[STD, std(M%d)]',r); 打错 03/01 23:14
10F:→ profyang:这个方法比较不会字串一直被num2str断开 颇烦的 03/01 23:15
感谢P大解说,sprintf方式感觉好用很多,我来研究看看怎麽用
话说把
caculate = ['STD =[STD, std(M' num2str(r)')]']
变成
caculate = ['STD =[STD, std(M' num2str(r) ')]']
就可以跑出来了,真是神秘orz
11F:推 peterwu76:是不是末端的是num2str,所以前端也要一起num2str 03/02 17:14
12F:→ peterwu76:然後再eval(字串)? 03/02 17:15
※ 编辑: RachelMcAdam 来自: 31.205.2.248 (03/02 21:11)
13F:推 profyang:那只是你把空格取代了,的功能而已 03/03 02:21