2012-06-28 196 views
1

我有兩個矩陣ab(具有相同的列數)。我想用一個條件來創建第三個矩陣c使用MATLAB中其他矩陣的元素創建矩陣

例如,我有:

a = [1 2 3 4 1 2 3 4 1 2 3 4; 
    1 1 1 1 2 2 2 2 3 3 3 3] 

b = [5 6 7 8 9 10 11 12 13 14 15 16;  
    17 18 19 20 21 22 23 24 25 26 27 28;  
    29 30 31 32 33 34 35 36 37 38 39 40] 

的條件是:a(2, :) == 2,因此所得到的矩陣應該是:

c = [1 2 3 4; 
    2 2 2 2; 
    9 10 11 12; 
    21 22 23 24; 
    33 34 35 36] 

回答

5

嘗試這

%With your a and b 

cols = a(2,:) == 2; 
c = [a(:,cols) ; b(:,cols)]; 

c = 

1  2  3  4 
2  2  2  2 
9 10 11 12 
21 22 23 24 
33 34 35 36 
+0

這真的很有幫助! – user1487735

0

這是應該工作的東西。通過一切手段可能不是最好和最有效的方式來做到這一點。

a=[1 2 3 4 1 2 3 4 1 2 3 4; 
    1 1 1 1 2 2 2 2 3 3 3 3]; 

b=[5 6 7 8 9 10 11 12 13 14 15 16;  
    17 18 19 20 21 22 23 24 25 26 27 28;  
    29 30 31 32 33 34 35 36 37 38 39 40]; 

truthtable = a(2,:)==2; 
c = [] 
for idx = 1:length(truthtable) 
    if truthtable(idx) == 1 
     c(:,end+1) = [a(:,idx);b(:,idx)]; 
    end 
end 
+1

這是不好的做法。 –

+0

它工作得很好!謝謝 – user1487735

+0

@EitanT我很樂意提供關於哪些方面可以使其更好的練習的建議。我也相信我提到,這不可能是完成手頭任務的最佳或最有效的方式。 –