Capturing non-zeros elements in matrix
显示 更早的评论
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.
回答(3 个)
Jan
2011-2-27
A = [0 2 3; 4 3 0]
B = A(A ~= 0);
Now B is a vector, not a matrix anymore.
1 个评论
Walter Roberson
2011-2-28
Or if conciseness is more important than speed:
B = A(~~A)
Andreas Goser
2011-2-27
A=[0 2 3; 4 3 0]
find(A)
2 个评论
Walter Roberson
2011-2-28
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
2011-2-28
@Walter: Of course. I'm sure that Andreas believes in the power of the OP to find this obvious solutionby himself.
Walter Roberson
2011-2-28
B = nonzeros(A);
The result will be a column vector.
类别
在 帮助中心 和 File Exchange 中查找有关 Creating and Concatenating Matrices 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!