我有一个如下的矩阵:
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
答案 0 :(得分: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