Computing findpeaks along 3-Dimensional matrix

17 ビュー (過去 30 日間)
Vivek
Vivek 2020 年 10 月 19 日
コメント済み: Star Strider 2020 年 10 月 20 日
I have a 3-dimensional matrix, after some code manipulation on a cell array. The matrix is of size 101x151x476.
The first number represents the y space, the second number is the x space, and the third number is the number of time steps. So essentially, the matrix contains magnitudes along a y-x plane, for varying timesteps.
I am trying to compute the peaks at each (y,x) across the timesteps. I am doing this using findpeaks. This is what I have so far:
for yIndex= 1:1:101
for xIndex= 1:1:151
[peaks{y,x}] = findpeaks(a3Dmatrix(yIndex,xIndex,:));
end
end
However, the cell "peaks" is incorrect, as it is not of the size 101x151 (y by x). Any help with this?

採用された回答

Star Strider
Star Strider 2020 年 10 月 20 日
I am guessing here, since I do not have your data. Since findpeaks is going to return vectors for the peaks, locations (and othher outputs if you want them), I would do something like this:
for yIndex= 1:1:101
for xIndex= 1:1:151
[peaks{yIndex,xIndex,:},locs{yIndex,xIndex,:}] = findpeaks(a3Dmatrix(yIndex,xIndex,:));
end
end
I cannot test that because I do not have your data, so I am posting it as UNTESTED CODE.
  6 件のコメント
Vivek
Vivek 2020 年 10 月 20 日
Yep, this has done it. Thank you very much!
Star Strider
Star Strider 2020 年 10 月 20 日
My pleasure!
If my Answer helped you solve your problem, please Accept it!
.

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeDescriptive Statistics についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by