Capturing non-zeros elements in matrix
Show older comments
Let's say we have a matrix A.From matrix A, I want to remove zeros and create another elements,capturing only non-zeros values. Can you please show me how to perform the above operation.
Answers (3)
Jan
on 27 Feb 2011
A = [0 2 3; 4 3 0]
B = A(A ~= 0);
Now B is a vector, not a matrix anymore.
1 Comment
Walter Roberson
on 28 Feb 2011
Or if conciseness is more important than speed:
B = A(~~A)
Andreas Goser
on 27 Feb 2011
A=[0 2 3; 4 3 0]
find(A)
2 Comments
Walter Roberson
on 28 Feb 2011
That would give you the locations of the non-zero elements, but would not in itself create a new array with the non-zero elements. Similar to Jan's answer, this would have to be extended to
B = A(find(A))
Jan
on 28 Feb 2011
@Walter: Of course. I'm sure that Andreas believes in the power of the OP to find this obvious solutionby himself.
Walter Roberson
on 28 Feb 2011
B = nonzeros(A);
The result will be a column vector.
Categories
Find more on Creating and Concatenating Matrices in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!