我有B< 1x3细胞>像这样:
B{1} = [2 1 19 22 29 13 14]
B{2} = [11 12 6 3 4 2 5]
B{3} = [3 2 23 13 4 7 8]
我想添加A< 4x2细胞>像这样:
A = {'a' '-1'; 'b' '1'; 'c' '2'; 'd' ''}
我试过这样:
for j=1:length(A)
for i=1:1:length(B)
C = B{i} + A{j,2};
end
end
我得到的是“矩阵维度必须达成一致”。 我该怎么做呢?
答案 0 :(得分:3)
A
包含字符。您需要将字符串转换为数字才能将它们添加到B
。使用例如str2double
:
for j=1:length(A)
for i=1:1:length(B)
C = B{i} + str2double(A{j,2});
end
end
请注意,A中的最后一个值是''
,它会转换为NaN
。
答案 1 :(得分:1)
您的代码包含几个问题:
首先在@angainor回答中显示。您需要将字符串转换为数字。
第二个是跟随。 B {i}是大小为7x1的矩阵,A {j,2}是单个数字。是否要将此数字添加到矩阵B {i}的所有元素中?在这种情况下,你应该写一些类似的东西:
B{i} + str2double(A{j,2}) * ones(size(B{i}))
第三个问题是长度(A)命令将返回A中的元素总数,例如4 * 2 = 8。 因此,您将遇到错误:无法访问元素A {5,2}。 您需要用
替换此行for j = 1:size(A,1)