a = [2 5 4 7]
という配列があるとします。最大値とそのインデックスを返す関数は何ですか?
たとえば、私の場合、その関数は最大値として7を返し、インデックスとして4を返す必要があります。
関数はmax
です。最初の最大値を取得するには、次を実行する必要があります
[val, idx] = max(a);
val
は最大値で、idx
はそのインデックスです。
マトリックスの場合、これを使用できます。
[M,I] = max(A(:))
Iは、最大の要素を含むA(:)のインデックスです。
次に、関数ind2subを使用して、最大要素に対応するAの行と列のインデックスを抽出します。
[I_row, I_col] = ind2sub(size(A),I)
2D配列(マトリックス)の場合、次を使用できます。
[val, idx] = max(A, [], 2);
Idx部分には、各行の最大要素を含む列番号が含まれます。
Max()を使用して、最大値を取得できます。 max関数は、ベクトルの最大値のインデックスを返すこともできます。これを取得するには、maxへの呼び出しの結果を、単一の変数ではなく2要素ベクトルに割り当てます。
例えばzは配列です。
>> [x, y] = max(z)
x =
7
y =
4
ここで、7は4番目の位置(インデックス)の最大数です。
Dケース
3D配列に対するモーセンの答えを修正する:
[M,I] = max (A(:));
[ind1, ind2, ind3] = ind2sub(size(A),I)
これは、マトリックスの最大値を返します
max(M1(:))
これにより、その値の行と列が返されます
[x,y]=ind2sub(size(M1),max(M1(:)))
最低限、Wordのmaxをminに交換するだけです。