2014-02-24 3 views
0

다음 MATLAB 문제로 누군가 도움을 받으시기 바랍니다. 매트릭스가 있습니다. 예 :최대 값을 제외한 행을 0으로 설정하십시오.

a = [1 2 3; 4 6 5; 9 8 7]

각 행의 최대 값으로 만 행렬을 만들고 나머지는 0으로 설정하고 싶습니다. 따라서이 경우 :

amax = [0 0 3; 0 6 0; 9 0 0

나는 이것이 매우 어렵지 않다라고 생각한다. 그러나 나는 그것을 이해할 수 없다! 도움을 미리 감사드립니다.

+0

각 행의 최대 값을 찾는 방법에 대해 논리적으로 생각하십시오. 행렬의 각 항목을 반복하고 이전의 최대 값과 비교하여 크기가 더 큰 경우 위치를 저장해야합니다. 가장 큰 것을 제외한 모든 위치를 0으로 설정하십시오. 각 행에 대해 반복하십시오. 가서 코드를 작성하십시오. – dckuehn

+0

나는 각 행에 대해 'a (max (a)) = 0'을 얻은 다음 각 행을 저장합니다. 작동하는 것 같습니다! – Starter

+0

어떤 프로그래밍 언어인가요? 그것은 순수한 수학적 질문입니까? 지금까지 뭐 해봤 어? 지금 downvote. – FazoM

답변

0
amax = a .* bsxfun(@eq, a, max(a,[],2)); 
+0

우우 - 이것은 완벽합니다! 그런데 어떻게 '맥스 (a, [], 2)'라고 생각 했습니까? 나는 다음 번을 위해서 이해하고 싶다. ..! – Starter

관련 문제