在Matlab中进行替换

时间:2012-04-24 22:57:11

标签: matlab genetic-algorithm

我有一组n基因组和n相应的适应值。我想根据它们的比例适应度值对基因组进行取样,例如P(genome) = fitness(genome) / sum(fitness(genomes))。在Matlab中是否有内置的采样机制?

3 个答案:

答案 0 :(得分:1)

如果你想从4个人群中得到10个样本,其拟合度分别为0.4,0.3,0.2和0.1,那么你可以这样做:

>> fitness = [0.4 0.3 0.2 0.1];
>> mnrnd(10,fitness)
ans =
     3     5     1     1

答案 1 :(得分:0)

Matlab内置了多项式随机数生成器。您可以将mnrnd用于您的目的。

答案 2 :(得分:0)

您可以将randsample用于此目的:

>> f = [2 5 7 8 1]; %# fitness values (not normalized)
>> g = {'g1', 'g2', 'g3', 'g4', 'g5'}; %# genome names
>> gSampled = randsample(g,100,true,f) %# sample 100 genomes with replacement