根据双变量正态分布生成1000个随机数时,绘制双变量pdf

时间:2018-09-09 19:13:51

标签: matlab plot matlab-figure normal-distribution

我需要通过从给定的(musigma)双变量正态分布中生成1000个随机变量来绘制双变量Pdf。我尝试编写代码(Matlab),但是其中有些错误。任何人都可以检查一下并帮助我纠正它。

function [ ] = bivariatedn( mu,sigma)
  % Generating 1000 random variables
  R=mvnrnd(mu,sigma,1000);
  X=R(:,1);
  Y=R(:,2);
  % Define the grid for visualization
  [X,Y]=meshgrid(R(:,1),R(:,2));

  % Define the constant (To write pdf in a easy way)
  const = (1/sqrt(2*pi))^2;
  const = const/sqrt(det(sigma));
  temp = [X(:)-mu(1) Y(:)-mu(2)];

  pdf=zeros(length(X),1);

  d=zeros(length(X),1);
  d=diag(temp*inv(sigma)*temp');
  for i=1:length(X)
    pdf(i)= const*exp(-0.5*d(i));
  end
  % plot the result
  surfc(X, Y, pdf, 'LineStyle', 'none');
end
  

使用surfc时出错(第39行)   Z面必须包含一个以上的行或列

这是正在显示的错误。有人可以看一下吗?

0 个答案:

没有答案