1

我有一个如下所示的矩阵:

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

1 回答 1

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
于 2012-11-06T01:20:24.753 回答