1、数组行数列数不确定,matlab 数组支持动态增长,这样方便编程使用。
>> for i=1:4
c(:,i)=[1,2,3,4]
end
>> c =
1 1 1 1
2 2 2 2
3 3 3 3
4 4 4 4
但这种方法需要新增元素都等长的,如果不相等,则会报错。今天我就遇到这个大坑,如下错误Subscripted assignment dimension mismatch.。
>> cell = {[1,2,3,4];[4,5,6]};
>> for i=1:2
c(:,i)=cell{i};
end
??? Subscripted assignment dimension mismatch.
如果要解决不等长数组增长问题,需要用元组解决。其实这个问题,在字符串数组的时候经常出现。
>> cell = {[1,2,3,4];[4,5,6]};
>> for i=1:2
d{i}=cell{i};
end
>> d
d =
[1x4 double] [1x3 double]
2、字符串的操作
(1)strcat函数,对于字符串末尾的空格是忽略不算的。如下例子。
>> str1='hello ';str2='world ';
>> strcat(str1,str2)
ans =
helloworld
如果要是先拼接且包含空格,可以直接利用中括号拼接。
>> str1='hello ';str2='world ';
[str1,str2]
ans =
hello world
(2)strrep查找替换函数,比如绘图是legend里面可能含有下划线,这样会被转义成下标,这时需要替换成空格。
>> str='hello_world';str = strrep(str,'_',' ')
str =
hello world