-5

Matlabには、次のマトリックスがあります。

A = [0,0,0,0,0,0,0,0,0,0,8,32,52,36,12,0,1,2,0,0,0,0,0,0,0,0,0,1,2,1,163,60,
21,31,34,35,38,38,40,38,38,40,34,37,39,34,32,32,33,31,39,40,37,36,24,39,162,
23,23,22,22,29,25,23,24,25,24,24,29,23,26,27,24,20,27,25,27,26,24,23,21,24,
162,20,24,29,30,28,25,31,28,30,32,35,29,31,32,30,29,30,30,31,31,30,30,29,25,
20,162,63,18,22,23,21,22,23,24,21,22,24,21,24,22,24,19,18,21,19,18,20,20,18,
20,13,162,162,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]

私のコマンドは:

max_locations = find(A==max(A))

リストの最高値である31番目の要素(163)のインデックスである31を返します。

私が探している答えは、ピークであるmax_locations = [31 57 83109135]です。

なぜそれは私にすべてのピークを返さないのですか、そしてどうすればこれを行うことができますか?

4

1 に答える 1

2

他の場所の値は最大ではないため:163ではなく162。

>> L([31 57 83 109 135])
ans =
   163   162   162   162   162

極端なピックを見つけたい場合は、試すことができます。

>> pick_location = find(L>160)
pick_location =
    31    57    83   109   135   136

実際にピークを見つけるには、FileExchangeからのPEAKFINDER送信を試しください。

于 2013-03-25T19:52:56.940 に答える