2011-12-06 3 views
2

큰 이미지 행렬 125x200x3을 가지고 있습니다. 이미지에는 많은 검은 색 영역이 있으므로 0 행이 많습니다. 나는이 모든 검은 영역을 완전히 제거하고 싶다. 나는 모두 (m == 0,3)을 사용해야한다는 것을 알고 있지만 3d 행렬과 함께 사용하는 방법을 이해하지 못하는 것 같습니다.matlab에서 3d 행렬의 전체 0 행을 모두 제거

m(all(m==0,3),:,:)=[] 

매트릭스를 초과 ... 어떤 도움에 감사드립니다!

답변

4

모든 검정을 포함 을 제거하려면 다음을 수행

(당신이 무엇을하고 있는지) ALL에 대한 내부 호출은 당신에게 사람과 125에 의해-200 논리적 매트릭스를 줄 것이다
m(all(all(m == 0,3),2),:,:) = []; 

모든 블랙 픽셀에 대해. ALL에 대한 외부 호출은 차원 2 (열)에서 작동하여 모든 검정색을 포함하는 행에 대해 1을 갖는 논리 벡터를 제공합니다. 이것은 행을 제거하기 위해 색인으로 사용하는 것입니다.

관련 문제