在另一个矩阵matlab中删除具有相应零的元素

时间:2013-07-24 11:34:09

标签: matlab matrix

我有两个矩阵A&例如,Matlab中的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]

有什么想法吗?

2 个答案:

答案 0 :(得分:5)

您可以使用logical indexing执行此操作:B(A==0) = 0

修改

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

答案 1 :(得分:1)

做丹的建议唯一的问题是A和B的大小不同。但是,您仍然可以通过一些额外的工作来完成这项工作。

indices = find(A==0);
indices = indices(indices <= length(B));
B(indices) = 0;