我需要通过从给定的(mu
和sigma
)双变量正态分布中生成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面必须包含一个以上的行或列
这是正在显示的错误。有人可以看一下吗?