ループ変数
ループ変数は、各反復に対するループ インデックス値を定義します。ループ変数は parfor
ステートメントの最初の行で設定します。
parfor p=1:12
すべての反復の値に対して、ループ変数は昇順に連続した整数として評価されなければなりません。各反復は他のすべての反復から独立しており、それぞれに固有のループ インデックス値をもっています。
必須 (静的): ループ変数への代入は許可されません。 |
この制限が必須なのは、parfor
本体で p
を変更すると反復の独立性が確保できなくなるためです。
次の例は、ループ本体でループ変数 p
の値を変更しようとしているため、無効です。
parfor p = 1:n p = p + 1; a(p) = i; end
必須 (静的): ループ変数にインデックスを付けたり、添字を使ったりすることはできません。 |
この制限が必須なのは、ループ変数のフィールドを参照すると反復の独立性を確保できなくなるためです。
次のコードは、構造体であるかのようにループ変数 (p
) のフィールド (b
) を参照しようとします。ループ内のいずれの行も無効です。
parfor p = 1:n p.b = 3 x(p) = fun(p.b) end
同様に、次のコードはループ変数に 1 行 1 列の行列としてインデックスを付けようとするため無効です。
parfor p = 1:n x = p(1) end