c ++通过标量乘以多维向量的最简单方法

时间:2017-11-06 01:41:18

标签: c++ arrays vector

我在 c ++ 上进行蒙特卡洛模拟。 为了保持正态分布的属性 0 ,我想将随机向量乘以 -1

例如,如果我有两个由随机生成器生成的随机数( - 1.4,+ 0.3),我想添加(+ 1.4,-0.3)随机数字。所以我可以在我的随机数向量上得到( - 1.4,0.3,1.4,0.3)

我想将其扩展为多维向量。随机数应由模拟数和周期数生成。所以随机数向量应该是多维的。

1-d 的情况下,我知道我可以使用变换。 我想知道如何在 2-d 情况下使用转换。如果还有其他更好的方式,我也想知道。

提前致谢:)

1 个答案:

答案 0 :(得分:1)

我强烈建议你使用Eigen库对矩阵,向量进行数学运算......这个库非常强大!

  

(Eigen是线性代数的C ++模板库:矩阵,   向量,数值求解器和相关算法。)

     

Eigen提供矩阵/向量算术运算   常见C ++算术运算符的重载,如+, - ,*或   通过dot(),cross()等特殊方法。对于Matrix   class(矩阵和向量),运算符只是重载以支持   线性代数运算。例如,matrix1 * matrix2表示   矩阵 - 矩阵乘积,矢量+标量是不允许的。如果你   想要执行各种数组运算,而不是线性代数,请参阅   下一页。

Eigen tutorial