Capturing non-zeros elements in matrix
Afficher commentaires plus anciens
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.
Réponses (3)
Jan
le 27 Fév 2011
A = [0 2 3; 4 3 0]
B = A(A ~= 0);
Now B is a vector, not a matrix anymore.
1 commentaire
Walter Roberson
le 28 Fév 2011
Or if conciseness is more important than speed:
B = A(~~A)
Andreas Goser
le 27 Fév 2011
A=[0 2 3; 4 3 0]
find(A)
2 commentaires
Walter Roberson
le 28 Fév 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
le 28 Fév 2011
@Walter: Of course. I'm sure that Andreas believes in the power of the OP to find this obvious solutionby himself.
Walter Roberson
le 28 Fév 2011
B = nonzeros(A);
The result will be a column vector.
Catégories
En savoir plus sur Creating and Concatenating Matrices dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!