2

例如,我在 Matlab 中有两个矩阵 A 和 B

A=[0,0,1,2,3,0,4,2,0]
B=[2,3,1,2,2,3,4,4,1]

我想要做的是将B中的元素设置为零,它们与A中的零元素具有相同的位置。所以在我的例子中:

A=[0,0,1,2,3,0,4,2,0]
B=[2,3,1,2,2,3,4,4,1]

我希望 B 是这样的:

B=[0,0,1,2,2,0,4,4,0]

任何想法?

4

2 回答 2

5

您可以像这样使用逻辑索引来做到这一点:B(A==0) = 0

编辑:

您也可以这样做:根据您在下面的评论B.*(A~=0),这将更容易推广到更高的维度。bsxfun

于 2013-07-24T11:37:20.740 回答
1

丹建议做某事的唯一问题是,如果 A 和 B 的大小不同。但是,您仍然可以通过一些额外的工作来做到这一点。

indices = find(A==0);
indices = indices(indices <= length(B));
B(indices) = 0;
于 2013-07-24T11:41:28.793 回答