私は、数値の2次元配列の最小値の位置を見つけるスクリプトをMATLABに書き込もうとしています。私はこの配列には最小値が1つしかないことを確信しています。したがって、同じ最小値を持つ配列内に複数の場所を持つことは問題になりません。 Iは、アレイの最小値を見つけることができるが、30×30アレイでは、Iは最小値であることをどの行と列知りたい。min機能の説明に2D配列の最小値のインデックスをMATLABに表示させる方法は?
答えて
、最小値を取得し、あなたはすでに見つけ使うだけで、最小を計算した場合、インデックスを返すように見つけるために、分を兼ね備えています。
>> a=magic(30);
>> [r,c]=find(a==min(min(a)))
r =
1
c =
8
それとも、論理アドレッシングがあなたに真理値表を与えるために使用することができ、その場合には、あなたが代わりに論理配列でそれを定義したいことがあり、位置情報を、どのように使用するかによって異なります。
>> a=magic(30);
>> locn=(a==min(min(a)));
ルック。最小値とインデックスを返すことができます。 2次元配列の場合、2回呼び出すだけです。
A = rand(30); % some matrix
[minColVal, minColIdx] = min(A);
[minRowVal, minRowIdx] = min(minColVal);
minVal = minRowVal;
minValIdx = [minColIdx(minRowIdx), minRowIdx];
編集:B3のソリューション@おそらく、計算よりエレガントである(より速く、より少ない一時的なスペースを必要とする)
あなたは、ベクトルに行列を作り変えるMINを使用して、最小のインデックスを検索し、これを変換することができ行列インデックスへの線形インデックス:代替バージョンとして
>> x = randi(5, 5) x = 5 4 4 2 4 4 2 4 5 5 3 1 3 4 3 3 4 2 5 1 2 4 5 3 5 >> [value, index] = min(reshape(x, numel(x), 1)); >> [i,j] = ind2sub(size(x), index) i = 3 j = 2
+1優雅な解決策! – groovingandi
いくつかの文字を保存するには、reshape()の代わりにx(:)を使用することができます。 – zellus
@zellus:私に思い出させてくれてありがとう!私は、これをやる別の方法があると感じていました。 –
は、ベクターの一部でminまたはmaxを検索するには - Aがベクトルと「下界」と「は、UpperBound」である場合は、最大を見つける必要があり、その中のベクトルの境界がある(もしくは分)値は、このコマンドを使用 -
[Value,Index]=min(A(lowerBound:upperBound));
これはオフセットとして「下界」と同様minまたはmax値(下界間)及び(uppedBound)と 「インデックス」と「値」を返します。したがって、絶対インデックスを見つけるには、 "lowerBound"をインデックスに追加する必要があります。
インライン関数を使用する別の解決方法が機能します。
>> min_index = @(matrix) find(matrix == min(reshape(matrix, [1,numel(matrix)])));
>> a=magic(30);
>> [r,c]=min_index(a)
r =
1
c =
8
- 1. 2D配列の最小値は斜めにですか? [Java]
- 2. 2d配列の特定のインデックスのインデックスを調べる最も良い方法
- 3. 2D配列の数値の平均値、最小値、最大値の取得
- 4. 配列に最大値を表示する方法は?
- 5. matlabの8ビット2d配列
- 6. 配列要素、表示のみ最小値
- 7. phpに配列の2番目の値を表示させる方法
- 8. 1D配列インデックスを2D配列インデックスに変換する
- 9. 配列の最大値と最小値
- 10. 配列の最小値と最大値
- 11. アセンブラ(SPARC)のint配列の最小値と最大値の検索方法は?
- 12. Ruby:最小配列要素のインデックスを見つける方法は?
- 13. 小(ish)2d配列のセグメンテーションフォルト
- 14. Rubyで2D配列のクラスオブジェクトに値を代入する方法
- 15. Matlabで最小の和を持つ列の列インデックスを見つける
- 16. 配列を小さな配列に分割する方法は?
- 17. ボタンクリックで次の配列値を表示する方法は?
- 18. ランダムに配列の値を表示する方法
- 19. 2D配列を循環させる方法
- 20. Java - 2D配列を印刷する最も良い方法は?
- 21. ビジュアルスタジオデバッガで2D配列を表示
- 22. 2D配列の配列を初期化する方法は?
- 23. 配列値の配列インデックス
- 24. 2dリストを2d numpy配列に変換する方法は?
- 25. 配列の最小値と最大値を並べ替える
- 26. Mipsの配列の最大値と最小値を出力するには
- 27. numpyの配列にN個の最小(インデックス)値が必要です
- 28. 2つの配列の最小値
- 29. 配列インデックスの最大サイズを見つける方法は?
- 30. C++ MATLAB APIで2D配列を定義
ありがとうございます!まさに私が必要なもの! –