使用高斯分布绘制条目可以生成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));
}