3次元配列のガウシアンフィッティング

11 views (last 30 days)
R.Kato
R.Kato on 28 Apr 2020
Answered: Kenta on 5 May 2020
3次元配列に対して、t軸に対してガウシアンフィットを行いピーク位置を検出するプログラムを作りたいと思います。
この時、に対してすべての要素に対して、各々のピーク位置を算出するには、
for文を用いる以外にどのような手法が考えられますか。
出来るだけ処理時間の掛からない手法を検討したいと思います。
  1 Comment
R.Kato
R.Kato on 30 Apr 2020
For文+findpeaks関数を使ってピーク検出を使用かと考えておりました。
ご提案頂いたparforを使った並列処理の方法も検討してみたいと思います。
ご回答有難うございました。

Sign in to comment.

Accepted Answer

Kenta
Kenta on 5 May 2020
コメントのほうありがとうございました。
こちら改めて、回答とさせてください。
for文なしに書くことも可能と思います。例えば3D配列aをt方向に分割して、t-by-1のセル配列を作って、cellfunを使うなどです。他にもやり方はあると思います。
ただ、for 文で a(x,y,t1) のピーク位置検出はどのようなコードでされていますか?例えば、findpeaks関数でしょうか?forなしに書くと速くなるのはそうだと思うのですが、forの中身を工夫して、満足いく時間内に実行することも可能と思います。そのほうが自由度が高まってよいかもしれません。若干不規則な場合もありますが、並列でfor文をする、parforを使っても速くなります。
ただ、各ループが完全に独立していないといけなかったり、予期せぬ難しさもあるかもしれません。

More Answers (0)

Community Treasure Hunt

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

Start Hunting!