The loop variable defines the loop index value for each iteration. You set it in the
first line of a
For values across all iterations, the loop variable must evaluate to ascending consecutive integers. Each iteration is independent of all others, and each has its own loop index value.
|Required (static): Assignments to the loop variable are not allowed.|
This restriction is required, because changing
parfor body cannot guarantee the independence of
This example attempts to modify the value of the loop variable
the body of the loop, and thus is invalid.
parfor p = 1:n p = p + 1; a(p) = i; end
|Required (static): You cannot index or subscript the loop variable in any way.|
This restriction is required, because referencing a field of a loop variable cannot guarantee the independence of iterations.
The following code attempts to reference a field (
b) of the loop
p) as if it were a structure. Both lines within the loop
parfor p = 1:n p.b = 3 x(p) = fun(p.b) end
Similarly, the following code is invalid because it attempts to index the loop variable as a 1-by-1 matrix:
parfor p = 1:n x = p(1) end
|Required (static): You cannot
use a range increment in |
Consider the following example:
N = 10; T = 3; A = zeros(N,T); B = zeros(N,T);
The following code is invalid.
parfor i = 1:1:N for t = 1:1:T A(i,t) = t; end end
The following code is valid.
parfor i = 1:1:N for t = 1:T B(i,t) = t; end end