示例程序如下:
a = {'1','2','19'};
b = zeros(1,3);
for i = 1:3
b(1,i) = cell2mat(a(1,i));
end
b(1,i) = cell2mat(a(1,i));
在上述语句时报错。“赋值具有的非单一 rhs 维度多于非单一下标数”
查看b中数据:
>> b
b =
49 50 0
原来a中数字是以字符形式存在的,在将其存储到matrix形式的b中时,存储的是其ASCII码,19没有对应的ASCII码,因此报错。
应该使用str2double或者str2num将其字符形式转变为数字形式。如下:
>> a = {'1','2','19'};
b = zeros(1,3);
for i = 1:3
b(1,i) = str2double(a(1,i));
end
>> b
b =
1 2 19