0

フィントがいくつかあります。セル配列を事前に割り当てて、後でループできるようにするにはどうすればよいですか? それらがセル配列として保存されているか、配列として保存されているか、または別のものとして保存されているかはあまり気にしません。次のことができるようにしたいだけです

for(i = 1:size(stocks))
    figure(i);
    plot(stocks(i));
end

または同等のもの。stocks = zeros(0,5) での割り当ては最初はうまくいきますが、フィントを挿入しようとするとうまくいきません。財務時系列オブジェクトの配列を事前に割り当てるにはどうすればよいでしょうか? 新しいものを挿入するたびに長さが異なるためです。

4

1 に答える 1

3

セル配列の事前割り当てメモリに関するMatlabのドキュメントから

cell 配列は、完全に連続したメモリを必要としません。ただし、配列を記述するために MATLAB® が作成するセル配列ヘッダーと同様に、各セルには連続したメモリが必要です。非常に大きな配列の場合、セルの数またはセル内の要素の数を段階的に増やすと、メモリ不足エラーが発生します。

関数 cell を呼び出すか、最後の要素に代入して、cell 配列を初期化します。たとえば、次のステートメントは同等です。

C = cell(25,50); C{25,50} = []; 

MATLAB は 25 行 50 列の cell 配列のヘッダーを作成します。ただし、MATLAB は各セルの内容にメモリを割り当てません。

于 2013-10-19T18:49:11.020 に答える