2012-10-05 74 views
2

我具有B- < 1×3,1×細胞>是這樣的:如何添加兩個單元在MATLAB

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] 

而且我想添加一個< 4×細胞>是這樣的:

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 

我得到的是「矩陣尺寸必須同意」。 我該如何正確地做到這一點?

回答

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

您的代碼包含幾個問題:

首先顯示在@angainor答案中。您需要將字符串轉換爲數字。

第二個是以下。 B {i}是大小爲7×1的矩陣,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) 
相關問題