📄 bnorm.m
字号:
function [bivar,Z1,Z2] = bnorm(mu, covar, range, n)
%function [bivar,Z1,Z2] = bnorm(mu, covar, range, n)
% Generate Bivariate Gaussian (Normal) data and plot from given mean and covariance
%
% mu is 2x1 mean vector
% covar 2x2 Covariance matrix
% range is 1x2 matrix to define plot range
% n is scaler number of data to be generated in each X-axis and Y-axis
%
% Developed by: Kirit Patel
% EE 574: Pattern Recognition
% Date: 11/30/2002
if (nargin < 4), n = 50; end
if (nargin < 3), range = [-10 10]; end
if (nargin < 2), errordlg('Not enough input arguments','Input Error','on'); return; end
errstr = {'Covariance Matrix is Singular or Diagonal',
'element is negative or Determinant is negative'};
[Z1, Z2] = meshgrid(linspace(range(1), range(2), n));
X = linspace(range(1), range(2), n);
if (isequal(size(mu),[2 1])==1)&(isequal(size(covar),[2 2])==1)
Xm = X-mu(1);
Ym = X-mu(2);
if det(covar) <= 0
errordlg(errstr,'Input Matrix Error','on')
return
end
for row = 1:n
eterm(row,:) = diag([Xm;ones(1,n).*Ym(row)]'*inv(covar)*[Xm;ones(1,n).*Ym(row)])';
end;
den = sqrt((2.*pi).^length(mu).*abs(det(covar)));
bivar = exp(-0.5.*eterm)./den;
if (nargout == 0)
mesh(Z1,Z2,bivar)
xlabel('x-axis'); ylabel('y-axis'); zlabel('Density function, p(x|w)');
title('Normal Bivariate Density')
end
else
errordlg('Matrix Dimensions are improper','Input Matrix Error','on')
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -