Asked by Anton Mulder
on 29 Apr 2013

Hi,

I have a matrix with a dimension of 10x640. The matrix is filled with ones and zeros. If there is a zero in one of columns, I want the entire column to be zeros. How can I do this?

Example:

[[1,0,1];[1,1,1]]

Output should be:

[[1,0,1];[1,0,1]]

*No products are associated with this question.*

Answer by Iman Ansari
on 29 Apr 2013

Accepted answer

A = randi(10,[10 640])-1; B = A; B(:,sum(A==0)>0)=0;

Answer by Image Analyst
on 29 Apr 2013

Try this:

% Make sample data. A = ones(10, 640); % Stick a zero in columns 3, and 5. A(9, 3) = 0; A(8, 5) = 0

% Now that we have some sample data, do what Anton wants. % Find out which columns have zeros in them columnsWithZeros = any(~A); % Assumes A is only 0's and 1's. A(:, columnsWithZeros) = 0; % Set whole column(s) to zero.

Image Analyst
on 29 Apr 2013

If you want a terse "one-liner" you can do this:

A(:, any(~A)) = 0;

Opportunities for recent engineering grads.

## 0 Comments