让我说我有这个矩阵:
B = [16 0 3 13;5 11 10 0;9 0 6 12;4 14 15 1];
if(columnContainzero (zeros(thatColumn))
有没有这样做的功能?
答案 0 :(得分:1)
您可以使用逻辑索引:
ColumnsContainingZeros = any( B == 0, 1 );
% >> ColumnsContainingZeros = [0 1 0 1]
然后使这些列中的所有行等于0
B(:, any(B==0,1)) = 0;
% >> B = [ 16 0 3 0
% 5 0 10 0
% 9 0 6 0
% 4 0 15 0 ]
要对行而不是列执行相同的操作,请使用any(B==0,2)
作为索引,使用B(any(B==0,2), :) = 0
更改这些行中的所有列。
答案 1 :(得分:0)
如果你不介意沿着行进行sum
操作,你可以使用这个简单的单行:
B(:,sum(B==0)>0)=0