理想的には Octave でこれを行う最善の方法を見つけようとしていますが、ピンチで NumPy を使用します。
axb 行列 M があるとします。特定の列の最大値の行インデックスが必要な場合は、[x, xi] = max(M)
これらのインデックスを行ベクトルとして返します。
たとえば、M が次の場合:
1 3 5
2 9 1
7 2 4
上記は行ベクトル[3 2 1]
を次のように返しxi
ます。その列の最大値を含む各行のインデックスのベクトル。これはいい。この行ベクトルが必要です。
しかし、上位n 個の行ベクトルが必要な場合はどうすればよいでしょうか?
[これをよりよく説明するために編集]
上記の例では、最初のそのようなベクトルは上記の[3, 2, 1]
, (特定の列ごとに最大値を持つ行のインデックス) になります。そのような 2 番目のベクトルは, (各列で2 番目に高い値を[2 1 3]
持つ行のインデックス) になります。
繰り返し行うこともできますが、実際の行列には何千もの行があるため、計算コストが非常に高くなります。これを達成するのに役立つ明らかな行列ユーティリティ関数が見つかりません。助言がありますか?