Bonjour à toutes et à tous,
J'ai une matrice carré de taille n et je souhaiterais la parcourir aléatoirement. J'ai crée une petite fonction pour ça, mais ça ne doit pas être la manière la plus rapide de procéder (matlab n'aimant pas trop les boucles).
L'idée est qu'à partir d'une taille de matrice n, je retourne tous les indexes [i,j] de manière aléatoire:
Encore une fois, je ne suis pas sur que ce soit la meilleure manière de procéder, et c'est pour cela que je suis ouvert à tout conseil sur la manière d'écrire un truc "bien".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 function newIJ = CreateRandomIndexes(n) mat = []; JI = 1:n; for i=1:n II = i*ones(n,1); mat = [mat; II,JI']; end imat = randperm(n*n); newIJ = mat(imat,:);
merci par avance,
Gian
PS: j'ai rien trouvé dans la recherche sur le forum, pourtant j'imagine que c'est un sujet classique?
PPS: j'ai cru lire en cherchant par ailleurs que randperm() est assez lent pour des grandes tailles?
Partager