MATLAB 报错 ‘赋值具有的非单一 rhs 维度多于非单一下标数’

示例程序如下:

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


猜你喜欢

转载自blog.csdn.net/wangxiao7474/article/details/78909942