2
로 변환 :어떻게 각 행의 최대 값을 찾아이 같은 행렬이 특정 값
0.1 0.2 0.5
0.3 0.7 0.4
나는 각 행의 최대 값을 찾기 위해 max
기능을 사용할 수 있다는 것을 알고 있습니다. 어떻게 내가 인덱스는 다음과 같이 새로운 매트릭스를 만들 max
에서 반환 된 사용합니까 :
0 0 1
0 1 0
로 변환 :어떻게 각 행의 최대 값을 찾아이 같은 행렬이 특정 값
0.1 0.2 0.5
0.3 0.7 0.4
나는 각 행의 최대 값을 찾기 위해 max
기능을 사용할 수 있다는 것을 알고 있습니다. 어떻게 내가 인덱스는 다음과 같이 새로운 매트릭스를 만들 max
에서 반환 된 사용합니까 :
0 0 1
0 1 0
result = bsxfun(@eq, A, max(A,[],2));
코드
%%// Given matrix
A= [0.1 0.2 0.5;0.3 0.7 0.4]
%%// Get the column indices of max values across each row into y1
[~,y1] = max(A,[],2);
%%// Create a zero matix of size same as A and set the values corresponding
%%// to y1 along each row as 1
A1 = zeros(size(A));
A1(sub2ind(size(A1),1:numel(y1),y1'))=1
출력
A =
0.1000 0.2000 0.5000
0.3000 0.7000 0.4000
A1 =
0 0 1
0 1 0
1 AWESOMENESS! 우리는'bsxfun'을 이런 이유로 사랑하지 않습니다! – Divakar
@Divakar 감사합니다! 단 하나 강선전은 항상 좋은 인상을 일으킨다 :-) –