変数'X'のサイズが​ループ反復ごとに変更​されているようです。​高速化する為に事前割​り当てを検討してくだ​さい(高速化)

MATLABで1~変数Nを用いてfor文で配列を作成してました。すると
「変数'X'のサイズがループ反復ごとに変更されているようです。高速化する為に事前割り当てを検討してください」
というようなMATLABのメッセージが発生しました。
for文の繰り返す数が多く、このエラーメッセージのように高速化したいのですが、どのように改善すべきか私では分かりませんでした。
どのようにすべき、考えるか教えていただけないでしょうか?

 Respuesta aceptada

Ameer Hamza
Ameer Hamza el 7 de Nov. de 2020

0 votos

For example, the following code will show the warning.
x = [];
for i = 1:10
x = [x i];
end
Similarly following code will also show warning
x = [];
for i = 1:10
x(i) = i;
end
Following code use pre-allocation and you will get no warning
x = zeros(1,10); % pre-allocation
for i = 1:10
x(i) = i; % no warning now
end

2 comentarios

wataru suzuki
wataru suzuki el 8 de Nov. de 2020
thank you
Ameer Hamza
Ameer Hamza el 8 de Nov. de 2020
I am glad to be of help!

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre ループと条件付きステートメント en Centro de ayuda y File Exchange.

Etiquetas

Preguntada:

el 7 de Nov. de 2020

Comentada:

el 8 de Nov. de 2020

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!