web-dev-qa-db-ja.com

MATLABで行列列の最大値のインデックスを見つけるにはどうすればよいですか?

マトリックスの特定の列の最大値を見つけようとしています。最大値とそれが含まれている行のインデックスの両方を検索したいと思います。これどうやってするの?

13
Jonathan

maxコマンドは、最大値とそのインデックスの両方を見つけることができます。
これが例です:

>> A = randn(10,3)
A = 
       0.8884     -0.10224     -0.86365
      -1.1471     -0.24145     0.077359
      -1.0689      0.31921      -1.2141
      -0.8095      0.31286      -1.1135
      -2.9443     -0.86488   -0.0068493
       1.4384    -0.030051       1.5326
      0.32519     -0.16488     -0.76967
     -0.75493      0.62771      0.37138
       1.3703       1.0933     -0.22558
      -1.7115       1.1093       1.1174

>> [maxVal maxInd] = max(A)
maxVal =
       1.4384       1.1093       1.5326
maxInd =
     6    10     6
14
Amro

特定の列の最大値が必要な場合は、その列をmaxに渡すか、結果のインデックスのリストから列を選択します。

_%# create an array
A = magic(4)

A =
    16     2     3    13
     5    11    10     8
     9     7     6    12
     4    14    15     1

%# select the maximum of column 3
[maxValue, rowIdx] = max(A(:,3),[],1)

maxValue =
    15
rowIdx =
     4
_

別の配列で対応する値を検索する必要がある場合は、otherArray(rowIdx,3)を使用します

2
Jonas