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

Переменная цикла задает значение индекса цикла для каждой итерации. Вы устанавливаете его в первой линии 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

Смотрите также

Похожие темы