⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gaussiansimilarity.m

📁 一个关于数据聚类和模式识别的程序,在生物化学,化学中因该都可以用到.希望对大家有用,谢谢支持
💻 M
字号:
function similarity = gaussianSimilarity(x, binNum, plotOpt)
% Evaluation of a PDF to see if it is close to Gaussian distribution

if nargin<1, selfdemo; return; end
dataNum = length(x);
if nargin<2, binNum = dataNum/50; end
if nargin<3, plotOpt = 0; end

gPrm = gaussianMle(x);
x = (x-gPrm.mu)/gPrm.sigma;	% 0 mean, unity variance
[N, X] = hist(x, binNum);

desired = gaussian(X, gPrm);
k = dataNum*(max(x)-min(x))/binNum;
diff = mean(abs(desired-N/k));
similarity = bellmf(diff, [0.1 1 0]);
% 0.28 ---> 0.9
% 0.03 ---> 0.1
%a = 4*(0.9-0.1);
%b = 0.9-a*0.28;
%similarity = a*similarity+b;

if plotOpt,
	bar(X, N/k, 1);
	range = max(x)-min(x);
	xi = linspace(min(x)-range/2, max(x)+range/2);
	yi = gaussian(xi, gPrm);
	hold on
	h = plot(xi, yi);
	hold off
	set(h, 'linewidth', 2, 'color', 'r');
	fprintf('Average abs. difference  = %g, similarity to Gaussian = %g\n', diff, similarity);
end

% ======= Self demo
function selfdemo
dataNum = 1000;
x = randn(dataNum, 1);
subplot(2,1,1);
feval(mfilename, x, 20, 1);
x = rand(dataNum, 1);
subplot(2,1,2);
feval(mfilename, x, 20, 1);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -