我知道MATLAB的datasample
允许从某个选择k
次。假设population=[1,2,3,4]
,我想统一采样,替换,k=5
次。然后:MATLAB:随机抽样多次?
datasample(population,k)
ans =
1 3 2 4 1
现在,我想重复上述实验N=10000
倍,而无需使用一个for循环。我试图做:
datasample(repmat(population,N,1),5,2)
但输出我得到的是(只是一个简短的摘录如下):
1 3 2 1 3
1 3 2 1 3
1 3 2 1 3
1 3 2 1 3
1 3 2 1 3
1 3 2 1 3
1 3 2 1 3
1 3 2 1 3
1 3 2 1 3
每一行(实验的结果)是一样的!但显然他们应该是不同的......就好像一些随机种子不在行之间更新。我怎样才能解决这个问题?或者我可以使用的其他方法避免for循环?谢谢!
你和rayryeng有相同的解决方案。非常感谢,它的工作原理!你的观点更简洁一些,所以我会接受它作为答案。 –
@space_voyager - 很酷。请记住,我写的代码可以推广到任何你想要的人口向量。 Daniel编码的假设是总体向量总是为'1:p',其中'p'是所需元素的数量。无论哪种方式,祝你好运! – rayryeng
@rayryeng:“假设你的人口总是1:p,你可以简化为”;) – Daniel