如何有效地生成从高斯分布中提取的GSL矩阵?

时间:2014-11-14 15:04:28

标签: matrix random-sample gsl

使用高斯分布绘制条目可以生成gsl矩阵的最有效方法是什么?

我知道名为gsl_ran_gaussian的函数,但据我所知,它只生成标量值。我尝试在double for循环中使用该函数填充矩阵,但对于我的预期应用程序来说它非常慢。

我想生成3xN矩阵: 第2行的所有条目应填充来自相同的零均值高斯方差分布V1的样本,而最后一行的条目应填充来自零均值高斯方差V2的样本。

修改

这就是我目前正在做的事情:

gsl_matrix * M;
M = gsl_matrix_calloc(3, size2);
const gsl_rng_type * T;
gsl_rng * r;

gsl_rng_env_setup();
T = gsl_rng_default;
r = gsl_rng_alloc(T);

for (uint16_t k=0; k<size2; k++) {
    for (uint8_t h=0; h<2; h++)
        gsl_matrix_set(M, h, k, gsl_ran_gaussian(r,S1));
    gsl_matrix_set(M, 2, k, gsl_ran_gaussian(r,S2));
}

0 个答案:

没有答案