2014-11-12 3 views
1

행렬이 40x20입니다. 나는 a라고 말하면서 모든 요소를 ​​지우고 싶습니다. 매트릭스에서 삭제되는 조건부 요소

나는 논리적 색인을 사용하여 열을 위해 그것을 할 또는 행하는 방법을 알고 :

idxToKeep = yourMat(1, :) <= a; 
newMat  = yourMat(:, idxToKeep); 

하지만 얻을 idxToKeep 경우도 매트릭스 무엇인지. 루프를 사용하는 방법을 상상할 수 있지만 루프를 사용하고 싶지는 않습니다.

감사합니다.

답변

2

이게 필요한 제품인가요?

values=yourMat(yourMat<=a); 

을 그리고 당신은 매트릭스 형식으로 출력을 원하는 경우 :

idxToKeep=yourMat<=a; 
values=yourMat(idxToKeep); 

오프 물론 당신은 당신이 원하는 경우 한 줄에 그것을 할 수

newMat=yourMat; 
newMat(newMat>a)=NaN; %or 0 
+0

+1이 추가되어야한다 이것은 행렬이 아니라 벡터를 반환한다는 것입니다. 행렬 모양은 임의의 항목이 삭제 된 일반적인 경우에 보존 될 수 없습니다. –

+1

@ LuisMendo correct. NaN으로 설정된 기준과 일치하지 않는 모든 요소가있는 행렬을 생성하는 단락을 추가했습니다. –

+0

도움을 주셔서 대단히 감사합니다. – Omer