2011-05-11 12 views
1

を一般:私はMathWorks社のMATLABでコードを変換するいくつかのフーリエ変換に取り組んでいます、そして次に遭遇してきた非正方行列のこのMathWorks社のMATLABコード

xx = meshgrid(1:N); 
% Center on DC 
xx = xx - dcN; 
% normalize dynamic range from -1 to 1 
xx = xx./max(abs(xx(:))); 
% form y coordinate from negative transpose of x coordinate (maintains symmetry about DC) 
yy = -xx'; 
% compute the related radius of the x/y coordinates centered on DC 
rr = sqrt(xx.^2 + yy.^2); 

どのように私は非正方行列のためにこれを一般化することができますか?このコードは、私の行列が正方形であると仮定しているので、dcNは正方行列の中心です(言い換えれば、11x11、dcN = 6)。

非正方行列に対して転置をとるとき、そのyy変数については数学では解けません。

左から右へではなく上から下に向かってメッシュグリッドを作ることができるかどうかを調べようとしましたが、私はタットを描くこともできませんでした。あなたの質問から

おかげ

答えて

0

は、私はあなたがrr、中心から行列内の任意の要素の、すなわち距離を見つけたいと思います。

あなたはM-によって-Nの配列のためにこれをしたい場合、あなたは何だろうと、次の私は、私が にトップ」から行くの関数meshgridを作ることができるかどうかを把握しようとしてい

%# note that using meshgrid instead of ndgrid will swap xx and yy 
[xx,yy] = ndgrid(-(M-1)/2:(M-1)/2,-(N-1)/2:(N-1)/2); 

%# normalize to the max of xx,yy 
nrm = max((M-1)/2,(N-1)/2); 
xx = xx./nrm; 
yy = yy./nrm; 

rr = sqrt(xx.^2+yy.^2) 
1

のいずれかを入力することはできませんでした。

>> N=5 

N = 

    5 

>> rot90(meshgrid(N:-1:1)) 

ans = 

    1  1  1  1  1 
    2  2  2  2  2 
    3  3  3  3  3 
    4  4  4  4  4 
    5  5  5  5  5 
関連する問題