1. 程式人生 > >matlab中的mvnrnd函式用法

matlab中的mvnrnd函式用法

使用matlab來實現:

clear all;close all; clc;
% 第一組資料
mul=[0,0]; % 均值
S1=[.1 0;0 .1]; % 協方差
data1=mvnrnd(mul, S1, 100); % 產生高斯分佈資料
% 第二組資料
mu2=[1.25 1.25];
S2=[.1 0;0 .1];
data2=mvnrnd(mu2,S2,100);
% 第三組資料
mu3=[-1.25;1.25]
S3=[.1 0;0 .1]
data3=mvnrnd(mu3,S3,100)
% 顯示資料
plot(data1(:,1),data1(:, 2),'b+');
hold on;
plot(data2(:,1),data2(:,2),'r+');
plot(data3(:,1),data3(:,2),'g+');

  如圖所示:

下面是mvnrnd函式的說明

>> help mvnrnd
mvnrnd - Multivariate normal random numbers

    This MATLAB function returns an n-by-d matrix R of random vectors chosen from
    the multivariate normal distribution with mean MU, and covariance SIGMA.

    R = mvnrnd(MU,SIGMA)
    r = mvnrnd(MU,SIGMA,cases)

可以看到生成的是n行d類的均值為MU,協方差是SIGMA的矩陣