我有一个矩阵,如:
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循环,有没有聪明的方法呢?非常感谢所有帮助。
谢谢
答案 0 :(得分:4)
您可以使用all
查找所有2的
all2 = all( A == 2, 1 ); % check along first dim
A(:,all2 ) = 0; % make column zero
如果要将所有相同数字(不仅是2)的列设置为零,可以使用bsxfun来协助
allSame = all( bsxfun( @eq, A, A(1,:) ), 1 );
A( :, allSame ) = 0;