Мне нужно построить двухвариантный Pdf, сгенерировав 1000 случайных величин из заданного (mu
и sigma
) нормального распределения двух вариаций. Я пытался написать код (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 должна содержать более одной строки или столбца
Это ошибка, которая отображается. Кто-нибудь может разобраться в этом?