2017-08-17 244 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

很高兴有帮助 –