Main Content

ループ変数

ループ変数は、各反復に対するループ インデックス値を定義します。ループ変数は 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

参考

関連するトピック