Per ottenere tutte le possibili permutazioni di "n" numeri, puoi usare la funzione "
perms"
>> help perms
perms All possible permutations.
perms(1:N), or perms(V) where V is a vector of length N, creates a
matrix with N! rows and N columns containing all possible
permutations of the N elements.
This function is only practical for situations where N is less
than about 10 (for N=11, the output takes over 3 gigabytes).
Class support for input V:
float: double, single
Nel tuo caso, dal momento che 5 elementi generano 120 permutazioni, se ne vuoi "solo" 5:
% Definizione dei valori di input
valori=[1 2 3 4 5]
% Generazione delle permutazioni
a=perms(valori)
% Identificazione del numero di permutazioni
[r,~]=size(a)
% Estraziione delle prime 5 permutazioni
perm_idx=randperm(r)
res=a(perm_idx(1:5),:)
dal momento che lla funzione "perms" genera le permutazioni facendo variare di volta in volta un solo elemento, se si prendono i primi 5 elementi della matrice "a" si ottiene una sequenza poco interessante:
5 4 3 2 1
5 4 3 1 2
5 4 2 3 1
5 4 2 1 3
5 4 1 2 3
Per prendere le 5 sequenze in modo casuale si può usare la funzione "randperm":
L'istruzione "perm_idx=randperm(r)" genera una sequenza casuale di interi da 1 a r (r è il numero di permutazioni totali dei 5 elementi)
Con l'istruzione "perm_idx(1:5)" si estraggono i primi 5 elementi di questa serri.
Questo genera, per esempio, la sequenza:
3 2 5 4 1
3 5 2 4 1
5 4 1 2 3
5 2 1 4 3
3 1 2 5 4
Hope this helps.