急!!!!MATLAB问题

来源:百度知道 编辑:UC知道 时间:2024/06/01 01:40:46
已知la=34.4631,44.1320,38.6000,想把la变成字符串数组分行存储,
for w=1:3
Yla(w,:)=num2str(la(w));
end
为什么会出错说Subscripted assignment dimension mismatch.?????
很急,在前面做了一个类似的就可以,可是到这里就不可以了,谢谢高手帮忙~

1、可以不用循环
Yla=num2str(la');
% 注意先变成列向量再用num2str,否则就都在一行了。
% 长度不同的字符串的话,短的用空格填充

2、如果用循环的话,可以用cell类型,就不用管每行长度是否相同了
for w=1:3
Yla{w,:}=num2str(la(w)); % Yla的小括号改大括号
end

Yla(w,:)=num2str(la(w));%你这样写,代表Yla是一个矩阵,然而这个矩阵的每个元素的长度不一样(la转过去的时候,会去掉最后的零),导致出现问题。

但是你可以这样弄:
for w=1:3
Yla{w}=num2str(la(w));
end

不用矩阵存储,用细胞元存储。

注意num2str函数会将小数点后的最后0去掉。
a=2.0;
num2str(a,3)

ans =

2

>> num2str(a,'%5.4f')

ans =

2.0000