2017-02-09 12 views
2

私は実際にPythonに私はPython(私はまだ初心者です)numpyの配列を使用して問題があるmatlabスクリプトを翻訳しています。 私の質問はこれです: 私はいくつかの信号のフーリエ変換を計算しており、私は3×3配列でUを動的に格納しています。私がしたいことの簡単な例は次のとおりです。配列の中に動的に格納するPython

l = 3 ; 
c = 0 ; 
for i = 1:3 
    for j = 1:10 
     c=c+1 ; 
     a = j + 1; 
     U(i,c,:)=a ; 
    end 
end 

私のpythonにこれを翻訳したいと私は店が動的に「」U. における注意の価値があること、配列Uを作成することができません:ここでは簡単のために「」としてJ + 1を計算していますがしかし、私のスクリプトでは「a」は配列(信号のフーリエ変換)です

私の悪い英語のために申し訳ありません、私はフランス語です。 T

+1

試したPythonコードは何ですか?あなたはどんなエラーを出していますか?代入は 'numpy'と非常によく似ています。 – Suever

+0

MATLABは、割り当てたマトリックスを拡大します。 'numpy'は最初に正しいサイズの配列を初期化する必要があります。この最近の質問は、「動的に」と題されています。http://stackoverflow.com/questions/42041016/struggling-with-dynamics-ndarray – hpaulj

+1

あらかじめ配列のサイズを知っているようです。したがって、まず配列を 'mat = np.empty(shape =(3、30))'として事前に割り当てることができます。シェイプが正しいかどうかを確認してください。 –

答えて

0

私はあなたが最終的にこのようなものを望むと信じています。混乱していたことの1つは、ループ変数cとjがやっていたことでした。あなたはc = jが欲しいと思われるので、私はそれを以下に変更しました。あなたが気を付けなければならないことは、Pythonオブジェクトは0から索引付けされていますが、Matlabオブジェクトは1から索引されることです。したがって、実際にiとjの値を調べ始めると、0から始まることがわかります。

import numpy 
L = 3; 
C = 10; 
N = 50; # Size of the Fourier array 
U = numpy.zeros((L,C,N)) 
for i in range(L): 
    for j in range(C): 
     # Create a matrix of scalars, for testing 
     a   = i*j*numpy.ones((N,)); 
     U[i,j,:] = a; 
+0

ありがとうございます!それはまさに私が望んだものです – lefloxy

+0

私は次元の3次元を持っていますが、私はnp.shape(U [1,2、:])を実行すると、2の次元を持つように思われます – lefloxy

+0

その場合、潜水艦を引き離す。可能であれば、正しい答えを記入してください。 –

関連する問題