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 comentarios

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!

Iniciar sesión para comentar.

 Respuesta aceptada

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

4 comentarios

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.

Iniciar sesión para comentar.

Más respuestas (2)

José-Luis
José-Luis el 26 de Oct. de 2012
Editada: José-Luis el 26 de Oct. de 2012
your_mat = A(A~=0);
And if you want a sparse matrix:
your_mat = sparse(A);

Categorías

Más información sobre Creating and Concatenating Matrices en Centro de ayuda y File Exchange.

Etiquetas

Preguntada:

el 26 de Oct. de 2012

Community Treasure Hunt

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

Start Hunting!

Translated by