Redian新闻
>
matlab如何生成一个特殊的随机矩阵
avatar
matlab如何生成一个特殊的随机矩阵# Computation - 科学计算
c*u
1
在matlab里面, randn只能生成标准normal(高斯)分布的随机矩阵.
但是,我现在要生成一个符合 N(0,A) 分布的高斯分布的随机矩阵.
PS:
B是一个任意的n*n的矩阵.
A=cov(B);
请问,如何生成??
avatar
g*y
2
you can use mvnrnd:
Random numbers from multivariate normal distribution
Syntax
R = mvnrnd(mu,sigma)
r = mvnrnd(mu,sigma,cases)
Description
R = mvnrnd(mu,sigma)
returns an n-by-d matrix R of random vectors chosen from the multivariate
normal distribution with
mean mu, and covariance sigma. mu is
an n-by-d matrix, and mvnrnd generates
each row of R using the corresponding row of mu. sigma is
a d-by-d symmetric positive semi-definite
matrix, or a d-by-d-by-n array.
If sigma is an array, mvnrnd g

【在 c***u 的大作中提到】
: 在matlab里面, randn只能生成标准normal(高斯)分布的随机矩阵.
: 但是,我现在要生成一个符合 N(0,A) 分布的高斯分布的随机矩阵.
: PS:
: B是一个任意的n*n的矩阵.
: A=cov(B);
: 请问,如何生成??

avatar
a*e
3
randn(size(A)).*A
avatar
s*s
4
may not be correct,since randn is not for multivariate distribution.
furthermore, even randn generates multivariate N(0,I), the multiplier should
be chol(A), not A, since the new covariance matrix for transformation y = M
*x+u is M'*Sigma*M, where Sigma is x's covariance matrix.

【在 a****e 的大作中提到】
: randn(size(A)).*A
avatar
a*e
5
OK,you are right
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。