Clear Filters
Clear Filters

Columns with at least one zero element

2 views (last 30 days)
Anya
Anya on 16 Jun 2014
Commented: dpb on 16 Jun 2014
Hi,
If I have a matrix with random dimension mxn , how can I detect a column which have at least one zero element?
Thank you

Accepted Answer

Mischa Kim
Mischa Kim on 16 Jun 2014
Edited: Mischa Kim on 16 Jun 2014
Anya, you could use
A = [1 2 3 0 8; 5 0 1 2 2];
col = find(sum(A==0))
col =
2 4
col shows the columns which have at least one zero.
  1 Comment
dpb
dpb on 16 Jun 2014
Just for comparison...
>> A = [1 2 3 0 8; 5 0 1 2 2];
>> (sum(A==0))
ans =
0 1 0 1 0
>> all(A)
ans =
1 0 1 0 1
>> ~all(A)
ans =
0 1 0 1 0
>>

Sign in to comment.

More Answers (2)

Jos (10584)
Jos (10584) on 16 Jun 2014
Let M be your mxm matrix:
tf = any(M==0,1) % true for columns with at least 1 zero
C = M(:,~tf) % columns with no zeros
  2 Comments
Anya
Anya on 16 Jun 2014
This answer also works ! thx guys
dpb
dpb on 16 Jun 2014
NB:
any(M==0) --> identically equal to ~all(M). One rarely (if ever) needs to expressly test for zero.
See the doc for each for details...

Sign in to comment.


dpb
dpb on 16 Jun 2014
idx=~all(M);

Categories

Find more on Mathematics in Help Center and File Exchange

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!