質問

Matlabでのインデックスとともに、マトリックスの最小限の非角質要素を見つける最も短い方法はありますか?

a = [1 2 3の場合; 4 1 3; 4 4 4];次に、最小の非角質要素のインデックスを返したいと思います。ここでは、最初の行と2番目の列に2になります。だから、私は戻りたい(1,2)。ありがとう。

役に立ちましたか?

解決

完全にベクトル化された代替のために試してください

B = (A + diag(Inf(size(diag(A)))));    % put Inf on diagonal
[~,ndx] = min(B(:));                   % get the linear index of the minimum value
[r,c] = ind2sub(size(A),ndx);          % get row, column of corresponding to linear index

他のヒント

for k=1:size(A,1)
    A(k,k) = inf;
end
[row,col] = find(A==min(A(:)))
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top