Contenu principal

Cette page a été traduite par traduction automatique. Cliquez ici pour voir la dernière version en anglais.

Variables de boucle

La variable de boucle définit la valeur d'index de boucle pour chaque itération. Vous le définissez dans la première ligne d'une instruction parfor.

parfor p=1:12

Pour les valeurs de toutes les itérations, la variable de boucle doit être évaluée en entiers consécutifs croissants. Chaque itération est indépendante de toutes les autres et chacune possède sa propre valeur d'index de boucle.

Obligatoire (statique) : Les affectations à la variable de boucle ne sont pas autorisées.

Cette restriction est nécessaire, car la modification de p dans le corps parfor ne peut pas garantir l'indépendance des itérations.

Cet exemple tente de modifier la valeur de la variable de boucle p dans le corps de la boucle et n'est donc pas valide.

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

Obligatoire (statique) : Vous ne pouvez en aucun cas indexer ou souscrire la variable de boucle.

Cette restriction est nécessaire, car le référencement d'un champ d'une variable de boucle ne peut pas garantir l'indépendance des itérations.

Le code suivant tente de référencer un champ (b) de la variable de boucle (p) comme s'il s'agissait d'une structure. Les deux lignes de la boucle ne sont pas valides.

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

De même, le code suivant n’est pas valide car il tente d’indexer la variable de boucle en tant que matrice 1 par 1 :

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

Voir aussi

Rubriques