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

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 commentaires

And regarding your previous question: don't use globals, you will save someone (probably yourself) a world of hurt in the future.
I will remember this advice!

Connectez-vous pour commenter.

 Réponse acceptée

MatrixAo = MatrixA(abs(MatrixA) > eps(100));

4 commentaires

eps(100) strikes me as arbitrary. Is there any reason you picked that value?
Hi. thanks for your answer. As Jose Luis already asked: Why did you picked the abs and eps?
Because of numerical precision issues.
Hi, Jose! Yes, it as arbitrary, from my experience.

Connectez-vous pour commenter.

Plus de réponses (2)

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

Catégories

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by