Collect only non-zero elements of a 3x3xN matrix
조회 수: 3 (최근 30일)
이전 댓글 표시
Hi,
I've a symbolic 3x3xN (with N variable) matrix I with some non-zero elements, like:
I(:,:,1) =
[ 0, 0, 0]
[ 0, 0, 0]
[ 0, 0, Il1]
I(:,:,2) =
[ 0, 0, 0]
[ 0, 0, 0]
[ 0, 0, Il2]
and I want to collect them into an array, but when I try:
[m,v]=find(I~=0)
it returns indices like m=3 v=9. How can I find them from the 3-D matrix and collect them into an array ?
댓글 수: 0
채택된 답변
Image Analyst
2013년 1월 18일
편집: Image Analyst
2013년 1월 18일
You simply extract them, like this:
nonZeroElements = I(I~=0);
That gives you a big long vector of all the array values that are not zero, in row major order.
추가 답변 (1개)
Matt J
2013년 1월 18일
I don't have the Symbolic Math Toolbox, but you could try the NONZEROS command. Don't know if it's overloaded for type sym.
참고 항목
카테고리
Help Center 및 File Exchange에서 Symbolic Math Toolbox에 대해 자세히 알아보기
제품
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!