2017-08-17 1 views
-1

Ich möchte zwei verschiedene zufällige Elemente aus gegebenem Array mit ihren Positionen auswählen. Ähnlich wie mit Datenbeispiel, aber mit Datenbeispiel besteht die Möglichkeit, das gleiche Element zweimal auszuwählen. Ich könnte While-Schleife oder ähnliches verwenden, aber ich nehme an, es gibt einen einfacheren Weg, es zu tun.Matlab zufällige Elemente aus Array

+4

Bitte zeigen Sie uns, was Sie bereits versucht haben. –

+0

Siehe: ['randi'] (https://www.mathworks.com/help/matlab/ref/randi.html) und [mcve] – excaza

+0

Um den Austausch zu vermeiden' datasample (data, 2, 'Replace', false) '; oder 'ransample (data, 2)' –

Antwort

4

Sagen Sie bitte eine Matrix A haben: n von m, können Sie zwei Elemente zufällig wählen, wie folgend,

A=[2 7 8;5 4 6;8 3 11];%given array 
[n m]=size(A); 
x=2;%two different random elements 
i=randperm(n,x)%row index for x elements 
j=randperm(m,x)%column index for x elements 
A(i(1),j(1)) %First random element 
A(i(2),j(2)) %Second random element 

Wenn Sie versuchen, das Sie so etwas wie,

i = 

2  3 

j bekommen könnte =

2  1 

ans =

4 

ans =

8 

der Code kann weiter vereinfacht werden, sondern wollte nur deutlich machen. Bitte lassen Sie mich wissen, wenn Sie weitere Fragen haben oder weitere Informationen benötigen.

+0

Das funktioniert super, danke! –

+0

Ich bin froh, dass ich helfen kann –

Verwandte Themen