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

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!

댓글을 달려면 로그인하십시오.

 채택된 답변

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

댓글 수: 4

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.

댓글을 달려면 로그인하십시오.

추가 답변 (2개)

José-Luis
José-Luis 2012년 10월 26일
편집: José-Luis 2012년 10월 26일
your_mat = A(A~=0);
And if you want a sparse matrix:
your_mat = sparse(A);

카테고리

도움말 센터File Exchange에서 Creating and Concatenating Matrices에 대해 자세히 알아보기

태그

질문:

2012년 10월 26일

Community Treasure Hunt

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

Start Hunting!

Translated by