从Matlab到C#的多元正态随机数

时间:2014-05-01 18:22:35

标签: c# matlab matrix statistics probability-theory

我正在将在Matlab上编写的代码转换为C#。在Matlab中,有一个名为mvnrnd的函数,它是多元正态随机数生成器。这需要两个输入:n x d平均矩阵和d-by-d cov矩阵。我用Google搜索并发现math.net matrixnormal确实做了同样的事情。

与Matlab中的函数不同,矩阵正态需要三个输入:均值矩阵(M),行(V)的cov矩阵和列(K)的cov矩阵。文件说明M的尺寸是否为d-by-m,则V是d-by-d,K是m-by-m。我有这两个输入矩阵(1x12平均矩阵和12x12 cov矩阵用于Matlab。我想将这两个输入转换为三个输入,用于矩阵正态。

平均矩阵部分不是问题,但我不知道如何转换cov部分。我不擅长统计。有人可以帮我这么做吗?谢谢,

1 个答案:

答案 0 :(得分:0)

这不是一个优雅的解决方案或任何东西,但我认为它可以工作......

为什么不通过填充值来创建协方差矩阵,然后在其上调用ColumnCovariance()和RowCovariance()?我从来没有写过C#,所以我不知道语法,但这应该给你一个大概的想法:

Matrix covariance = new Matrix( [some numbers]) // basically just copy the covariance values
Matrix rowCov = covariance.getRowCovariance()
Matrix colCov = covariance.getColumnCovariance()