質問: fft2(i); imagesc(abs(fftshift(y))) imagesc(log(abs(fftshift(y))));
回答: radialavg.zip - file exchange - matlab central (mathworks.com) function [zr, r] = radialavg(z,m,xo,yo) % radially averaqe 2d square matrix z into m bins matlabに専用の関数は見つかりませんでしたが、file exchangeで「動径方向の分布を得るradialavg関数」を見つけました。リンク先からダウンロードして、radialavg.mを現在のフォルダに置けば利用可能です。ご使用の条件に合うか試してみてください。また、デモ用のテストコードradialavg_tester.mが同梱されており、それを実行すればradialavg関数の機能が一目瞭然です。主な仕様を調べ下記に羅列しました。 入力する2次元行列は正方行列である事 ドーナツ状マスクの幅、即ちビンの分割数を設定する事が可能(m) ドーナツ状マスクの中心座標をオフセットする事が可能(-1 <= x0,y0 <= 1) ドーナツ状マスクの要素数は動径と共に変化するが、要素数で割った値(平均値)を出力している 円から外れる四隅の部分は動径方向の分布集計に含まれない 入力する2次元行列にnan値が含まれてもそれを無視した結果を出力可能 % 質問に掲載のコードの続きとして書くコード例 m = 101; % 半径方向のbin分割数+1 [yr,r] = radialavg(y,m); % オフセットは省略(=0) plot(r,yr,'o');