2014-10-10 3 views
0

나는 나쁜 하루를 보내고 있습니다. 나는 아주 간단한 질문이있다.매트릭스의 특정 요소를 제거하는 방법은 무엇입니까?

내가 가진

[1 2 3 4 5 6 -2 -3 .... 

2 4 5 3 2 -4 3 3 ...] 

는 내가 뭘하고 싶은 것은 행렬의 첫 번째 행을 확인하고 2보다 큰 모든 숫자를 삭제하고 ROW2에서 해당 항목을 삭제하는 것을되도록 × 100 매트릭스. 예를 들어 대문자보다 하나의 요소 만있는 경우 행렬은 2x99 행렬이됩니다.

답변

3

당신은 논리적 인덱스를 사용한다 :

idxToKeep = yourMat(1, :) <= 2; 

newMat  = yourMat(:, idxToKeep); 

또는 경우에 당신은 새로운 행렬을 생성하고 싶지 않은 :

yourMat  = yourMat(:, idxToKeep); 

또는 모든 한 - 라이너 :

yourMat  = yourMat(:, yourMat(1, :) <= 2); 
+0

@Dan 동의합니다. 내 코드 인 경우 동의합니다. 그러나 이것은 TS가 이해하는 것이 더 쉽다고 생각합니다. 나는 그것을 추가 할 것이다. ... – Nick

+0

나는 하나만 더 참고할 것이다.'a (:, a (1, :) <= 0.2) = [];'도 마찬가지다. 누군가 경탄하는 경우에; 아니, 더 빠르지 않아, 나는 닉의 해결책 중 하나를 추천한다. =) –

+1

@RobertP. '> 2'를 원했던 것 같아요? 또한 실제로 더 느립니다. http://stackoverflow.com/questions/12421345/deleting-matrix-elements-by-vs-reassigning-matrix – Dan

관련 문제