Vous voulez simuler des boucles for n-nichées.
L'itération à travers un réseau n-dimmensionnel peut être considérée comme une augmentation du nombre à n chiffres.
A chaque dimmension nous avons autant de chiffres que la longueur de la dimmension.
Exemple :
Supposons que nous ayons array(matrix)
int[][][] T=new int[3][4][5];
dans "pour la notation" nous avons :
for(int x=0;x<3;x++)
for(int y=0;y<4;y++)
for(int z=0;z<5;z++)
T[x][y][z]=...
pour simuler cela, il faudrait utiliser la "notation des nombres à n chiffres".
Nous avons un numéro à 3 chiffres, avec 3 chiffres pour le premier, 4 pour le second et 5 pour le troisième.
Nous devons augmenter le nombre, ainsi nous obtiendrions la séquence
0 0 0
0 0 1
0 0 2
0 0 3
0 0 4
0 1 0
0 1 1
0 1 2
0 1 3
0 1 4
0 2 0
0 2 1
0 2 2
0 2 3
0 2 4
0 3 0
0 3 1
0 3 2
0 3 3
0 3 4
and so on
Vous pouvez donc écrire le code pour augmenter un tel nombre à n chiffres. Vous pouvez le faire de telle manière que vous pouvez commencer avec n'importe quelle valeur du nombre et augmenter/diminuer les chiffres par n'importe quel nombre. De cette façon, vous pouvez simuler des boucles for imbriquées qui commencent quelque part dans le tableau et ne se terminent pas à la fin.
Ce n'est pas une tâche facile. Je ne peux malheureusement pas vous aider avec la notation Matlab.
13 votes
Note sur la terminologie Matlab : Matlab possède un petit nombre de types de données de base. Les plus importants sont : struct, matrix et cell array. Pour faire référence aux parties d'une matrice, il est courant d'utiliser le terme "élément", et de réserver le terme "cellule" aux parties d'un tableau de cellules. Les tableaux de cellules et les matrices présentent de nombreuses différences syntaxiques et sémantiques, même s'il s'agit de structures de données à N dimensions.
3 votes
Puis-je vous demander à quoi sert l'itération ? Peut-être y a-t-il une façon "vectorisée" de le faire à la place...