Переменные цикла

Переменная цикла определяет значение индекса цикла для каждой итерации. Вы установите его в первой линии a parfor оператор.

parfor p=1:12

Для значений во всех итерациях переменная цикла должна вычисляться как возрастающие последовательные целые числа. Каждая итерация не зависит от всех других, и каждая имеет свое значение индекса цикла.

Требуется (статический): Назначения переменной цикла не разрешены.

Это ограничение требуется, потому что меняются p в parfor орган не может гарантировать независимость итераций.

Этот пример пытается изменить значение переменной цикла p в теле цикла и, таким образом, является недопустимым.

parfor p = 1:n
    p = p + 1;
    a(p) = i;
end

Требуется (статический): Вы не можете индексировать или индекс переменную цикла каким-либо образом.

Это ограничение требуется, потому что ссылка на поле переменной цикла не может гарантировать независимость итераций.

Следующий код пытается ссылаться на поле (b) переменной цикла (p) как будто это структура. Обе линии в цикле недопустимы.

parfor p = 1:n
    p.b = 3
    x(p) = fun(p.b)
end

Аналогично, следующий код недопустим, потому что он пытается индексировать переменную цикла как матрицу 1 на 1:

parfor p = 1:n
    x = p(1)
end

Требуется (статический): Вы не можете использовать шаг области значений в for- циклы, вложенные в parfor-цикл.

Рассмотрим следующий пример:

N = 10; 
T = 3; 
A = zeros(N,T); 
B = zeros(N,T);

Следующий код недействителен.

parfor i = 1:1:N 
    for t = 1:1:T 
        A(i,t) = t; 
    end 
end

Следующий код действителен.

parfor i = 1:1:N 
    for t = 1:T 
        B(i,t) = t; 
    end 
end

См. также

Похожие темы