我有两个大小相同的矩阵( x1x2 )。我想使用 x1 中等于 0 的元素将 x2 中的相同元素置零。

我现在得到的非工作解决方案如下:

[i j] = find(x1 == 0);
x2(i,j) = 0;

我还有一个可行的解决方案是:
[i j] = find(x1 == 0);
for n=1:length(i)
    x2(i(n),j(n)) = 0;
end

谢谢!

最佳答案

尝试 x2(x1 == 0) = 0 。例如:

>> x1 = 兰特(5, 5)

x1 =

0.4229 0.6999 0.5309 0.9686 0.7788
0.0942 0.6385 0.6544 0.5313 0.4235
0.5985 0.0336 0.4076 0.3251 0.0908
0.4709 0.0688 0.8200 0.1056 0.2665
0.6959 0.3196 0.7184 0.6110 0.1537

>> x2 = 兰迪 (2, 5, 5) - 1

x2 =

0 1 1 0 1
0 1 0 0 1
1 1 1 1 0
0 1 1 1 1
1 0 0 0 0

>> x1(x2 == 0) = 0

x1 =

0 0.6999 0.5309 0 0.7788
0 0.6385 0 0 0.4235
0.5985 0.0336 0.4076 0.3251 0
0 0.0688 0.8200 0.1056 0.2665
0.6959 0 0 0 0

关于matlab - 将指定的索引设置为零,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5258720/

10-14 11:16