matlab:矩阵的随机组合

时间:2012-03-21 04:48:42

标签: matlab matrix distribution combinations

假设我有两个不同大小的矩阵:

a = zeros(1,100);
b = ones(1,200);

现在我想将它们组合在一起。诀窍是,我想随机混合它们,但是定义了如何调用它......嗯,每个组的生命周期,正态分布。

所以不要随意010010101010001010 .. 我想将这个'lifetime'参数设置为f.ex. 4,结果有类似

的结果

00001111000111110000000011110000

换句话说,我必须把它分成0和1组。单组的平均大小为4(但也会有2,3或7组,你知道我的意思)。有任何想法吗? 感谢

1 个答案:

答案 0 :(得分:0)

没有简洁的方法,你必须创建一种方法。

我会看看泊松函数,你可以选择将两者混合在一起,但如果你用不同大小的数组做,你最后会有一些奇怪的东西。

基本上,我会做这样的事情。请注意,此代码可能不起作用,但至少应该为您提供一个起点。当你超过矩阵的长度时,我还会让你弄清楚如何组合它们。

c=zeros(length(a)+length(b))
a_index=1;
b_index=1;
c_index=1;
while(a_index<length(a) && b_index<length(b))
    a_rnd=poissrnd(4);
    b_rnd=poissrnd(r);
    c(cindex:(cindex+a_rnd))=a(a_index:(a_index+a_rnd));
    c(cindex:(cindex+b_rnd))=b(b_index:(b_index+b_rnd));
    a_index=a_index+a_rnd;
    b_index=b_index+b_rnd;
end