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)

Categories

Find more on Creating and Concatenating Matrices 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!