ここでは、2つの行列があり、1つはコストを示し、もう1つはいつ比較するかを決定します。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
を比較し、コスト行列で(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」)。 –