여기에 두 개의 행렬이 있는데, 하나는 비용을 나타내고 다른 하나는 비교할시기를 결정합니다.matlab에서 min 요소의 색인을 찾으십시오.
cost = [0.2 0.0 0.3; 0.4 0 0; 0.5 0 0];
available = [1 1 0 ; 1 0 0; 0 0 0];
available = logical(available);
내가 0.2
, 0.0
및 0.4
을 비교하고 비용 매트릭스 (1, 2)
또는 4
입니다 0.0
의 인덱스를 반환이 경우 비용 행렬의 최소 가능한 요소의 인덱스를 얻으려면 .
mul = cost .* available; % Zero if not available, but I can't know if it is zero because cost is zero
mul(~mul) = nan; % Set zero to be NaN
[minVal, minId] = min(mul)
을 시도했지만 사용할 수있는 제로 요소가 존재하는 경우, 그것은 잘못된 것입니다.
이렇게 할 수있는 더 좋은 방법이 있습니까?
오프 주제 : 함수와 같은 변수 이름 지정을 자제해야합니다 (예 : 'min'). –