2017-08-17 240 views
-1

我想從給定數組中隨機選取兩個不同的隨機元素。與數據採樣類似,但是對於數據採樣,可能需要兩次採樣相同的元素。 我可以使用while循環或類似的,但我想有一個更簡單的方法來做到這一點。矩陣的Matlab隨機元素

+4

請告訴我們您已經嘗試過的東西。 –

+0

請參閱:['randi'](https://www.mathworks.com/help/matlab/ref/randi.html)和[mcve] – excaza

+0

爲避免更換,請使用'datasample(data,2,'Replace',false )';或'randsample(data,2)' –

回答

4

假設你有一個矩陣A:N的男,你可以選擇在任意兩個要素如下,

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 

如果你試試這個,你可以得到的東西一樣,

i = 

2  3 

Ĵ =

2  1 

ANS =

4 

ANS =

8 

代碼可以進一步簡化,但只是想講清楚。如果您有任何其他問題或需要進一步澄清,請讓我知道。

+0

這很好,謝謝! –

+0

很高興有幫助 –