2012-11-06 103 views
1

我有一個矩陣是這樣的:「查找和替換」從矩陣MATLAB

a = [10 0; 12 5; 10 0; 12 0; 15 0; 15 2]; 
a = 

10  0 
12  5 
10  0 
12  0 
15  0 
15  2 

我希望創造一個新的矩陣,查找和使用是依賴於一個值替換零第一列的值。關鍵是這個矩陣:

Key = 

10 100 
12 200 
15 300 

如果在第一列的值已經大於零,我想離開它。輸出應該是這樣的:

Output = 

10 100 
12  5 
10 100 
12 200 
15 300 
15  2 

回答

4

您可以使用邏輯索引巧妙地做,在一個行:

a(~a(:,2),2)=arrayfun(@(x)Key(Key(:,1)==x,2),a(~a(:,2),1)) 

%a =  
% 10 100 
% 12  5 
% 10 100 
% 12 200 
% 15 300 
% 15  2 
+0

真棒。謝謝! – Taylor