如何在Matlab中用零替换特定值的列?

时间:2014-07-17 14:27:41

标签: matlab matrix

我有一个矩阵,如:

A=  
 1 2 7 4  
 3 2 8 5  
 2 2 9 6  

并希望将一个只有2的列归零,并得到类似的内容:

A=  
 1 0 7 4  
 3 0 8 5  
 2 0 9 6  

如果没有两个for循环,有没有聪明的方法呢?非常感谢所有帮助。

谢谢

1 个答案:

答案 0 :(得分:4)

您可以使用all查找所有2的

all2 = all( A == 2, 1 ); % check along first dim
A(:,all2 ) = 0; % make column zero

如果要将所有相同数字(不仅是2)的列设置为零,可以使用来协助

allSame = all( bsxfun( @eq, A, A(1,:) ), 1 );
A( :, allSame ) = 0;