How can I select all the nonzero elements of a matrix and give out a matrix?

1 view (last 30 days)
How can I select all the nonzero elements of a matrix and give out a matrix?
MatrixAo = find(MatrixA(:)~=0)
This only gives the indices back... Is there any better command?
Thanks a lot!
  2 Comments
José-Luis
José-Luis on 26 Oct 2012
And regarding your previous question: don't use globals, you will save someone (probably yourself) a world of hurt in the future.

Sign in to comment.

Accepted Answer

Andrei Bobrov
Andrei Bobrov on 26 Oct 2012
MatrixAo = MatrixA(abs(MatrixA) > eps(100));
  4 Comments

Sign in to comment.

More Answers (2)

José-Luis
José-Luis on 26 Oct 2012
Edited: José-Luis on 26 Oct 2012
your_mat = A(A~=0);
And if you want a sparse matrix:
your_mat = sparse(A);

Sachin Ganjare
Sachin Ganjare on 26 Oct 2012
Try this:
MatrixAo = MatrixA(MatrixA~=0)

Tags

Community Treasure Hunt

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

Start Hunting!