Looking for matlab Answers? Try Ask4KnowledgeBase
Looking for matlab Keywords? Try Ask4Keywords

MATLAB LanguageForループ


備考

列ベクトルを反復する

一般的なバグの原因は、列ベクトルの要素をループすることです。列ベクトルは、1つの列を持つ行列のように扱われます。 (実際にはMATLABで区別がありません。) forループをカラムに設定され、ループ変数で一度実行されます。

% Prints once: [3, 1]
my_vector = [1; 2; 3];
for i = my_vector
    display(size(i))
end

繰り返し変数の変更

反復変数を変更すると、現在の反復の値が変更されますが、それ以降の反復では値には影響しません。

% Prints 1, 2, 3, 4, 5
for i = 1:5
    display(i)
    i = 5; % Fail at trying to terminate the loop
end

右側のa:b特殊ケースのパフォーマンス

基本的な例では、行ベクトルを作成し、それを反復する通常のインスタンスとして1:nを扱います。パフォーマンス上の理由から、Matlabは実際にはa:bまたはa:c:b扱いますa:b 、行ベクトルを完全には作成せず、各要素を一度に1つずつ作成するようにします。

これは構文を少し変更することで検出できます。

% Loops forever
for i = 1:1e50
end
% Crashes immediately
for i = [1:1e50]
end

Forループ 関連する例