Qual è il modo migliore per creare una matrice 10x2 in MATLAB in cui ogni elemento è un intervallo casuale compreso tra 1 e 5, in modo che ci siano solo coppie di elementi univoche in questo array? So che randperm può darmi numeri univoci casuali, ma non sono sicuro che sia possibile usare randperm per dare coppie uniche? L'unico altro modo posso pensare a sta usando:MATLAB - Il modo migliore per creare un array 2d di coppie uniche?
randi([1 5], 10, 2);
In un ciclo con un'istruzione if controllando se tutte le coppie sono unici. Un esempio dei dati mi piacerebbe sarebbe qualcosa di simile:
4 5
1 3
2 2
1 4
3 3
5 1
5 5
2 1
3 1
4 3
Nota: l'ordine degli elementi non importa per esempio, entrambi a 4, 5 e 5, 4 sarebbe valida.
[ 'nchoosek'] (http://www.mathworks.com/help/matlab/ref/nchoosek.html) – excaza
se questo è un curiosamente domanda posta Non vi è alcuna garanzia che otterrete 10 coppie di valori unici se si selezionano in modo casuale numeri interi compresi tra uno e cinque. L'unico modo per garantirlo è se utilizzi '1-5' come valori di input. – excaza
Sarebbe '[1,2; 2,1]' permesso? – Daniel