2017-10-12 18 views
1

私は与えられたクラスの多くのインスタンスを生成する必要があるコードを開始しました。私はPythonでやるように配列にそれらを保存したい。Matlabでクラスのインスタンスを生成し、配列に保存するにはどうすればよいですか?

これは私が何をしたいです:Pythonで

object_list = []; 
    for i=1:100 
     my_object = MyClass(i) 
     object_list(i) = my_object 
    end 

私は私が私のリストに好きなだけ追加することができますので、これは動作します。 Matlabではどのようにすればよいですか?

/エラーが発生するのはこれです: "MyClassからダブルに変換することはできません。" Matlabの配列はジェネリックなpythonリストとは異なった振る舞いをしており、実際には倍精度を含む必要があります。/

+1

MATLABでも間違いなく追加することができますが、追加することは本当に良い考えではありません。より良い方法は、予想される長さに事前に割り当てることです。あなたの場合、セル配列が必要です。したがって、予想されるサイズのセル配列、すなわち 'object_list = cell(1,100)'を初期化し、 'object_list(i)'を 'object_list {i} 'に置き換えます、中括弧。その変更を行う理由は、エラーメッセージが示すとおりです。 (デフォルトでは虚数を表すので、変数名として 'i'(および' j')を使用しないでください) –

答えて

0

あなたは、オブジェクトの配列としてあなたの配列を初期化することができますInitialize Object Arrays

object_list(100) = MyClass(100); 
for i=1:100 
    object_list(i) = MyClass(i); 
end 

詳しい情報を。

関連する問題