這裏我有兩個矩陣,一個表示成本,另一個決定何時進行比較。查找matlab中最小元素的索引
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
並返回0.0
的指標,這是在成本矩陣(1, 2)
或4
指數。
我試圖
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')。 –