matlab mvnrnd函数参数解析

使用matlab来实现:
mu = [2 3];
SIGMA = [1 0; 0 2];
r = mvnrnd(mu,SIGMA,100);
plot(r(:,1),r(:,2),'r+');
hold on;
mu = [7 8];
SIGMA = [ 1 0; 0 2];
r2 = mvnrnd(mu,SIGMA,100);
plot(r2(:,1),r2(:,2),'*')

mvnrnd:Multivariate normal random numbers
解释:mvnrnd 是用来生成多维正态数据的。
具体参数大家可以参考matlab的帮助手册。
mu 是需要生成的数据的均值
SIGMA 是需要生成的数据的自相关矩阵(相关系数矩阵)

上面生成的数据如图:




R = mvnrnd(MU,SIGMA)——从均值为MU,协方差为SIGMA的正态分布中抽取n*d的矩阵R(n代表抽取的个数,d代表分布的维数)。
MU为n*d的矩阵,R中的每一行为以MU中对应的行为均值的正态分布中抽取的一个样本。
SIGMA为d*d的对称半正定矩阵,或者为d*d*n的array。若SIGMA为array,R中的每一行对应的分布的协方差矩阵为该array对应的一个page。也就是说:R(i,:)由MU(i,:)和SIGMA(:,:,i)产生。

如果协方差矩阵为对角阵,sigma也可用1*d向量或1*d*n的array表示,如果MU是一个1*d的向量,则SIGMA中的n个协方差矩阵共用这个MU。

R的行数n由MU的行数n或者SIGMA的page数n决定。


参考资料:

https://cn.mathworks.com/help/stats/mvnrnd.html?s_tid=gn_loc_drop

猜你喜欢

转载自blog.csdn.net/u011032846/article/details/53504229
今日推荐