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

📄 mog2.m

📁 he AutoMix package is a C program for Unix-like systems, implementing the automatic reversible jum
💻 M
字号:
% code to make dataset for 1d mog
% outputs a c header file for use with automix

fname = 'mog2.h';

mix.K = 2;
mix.w = [ .5 .5 ]; %.5 ];
mix.mu = zeros(mix.K, 2);
mix.mu(1,:) = [-3 -3];
mix.mu(2,:) = [3 3];
mix.cov = zeros(mix.K, 2, 2);
th = 0;
v = [cos(th) sin(th) ; -sin(th) cos(th)];
d = diag([4 .1]);
mix.cov(1,:,:) = v*d*v';
th = 0;
v = [cos(th) sin(th) ; -sin(th) cos(th)];
d = diag([.2 5]);
mix.cov(2,:,:) = v*d*v';
 
% draw samples
nSamples = 50;
samples = zeros(nSamples, 2);
k = sample_discrete( mix.w, nSamples, 1 );
for si=1:nSamples
   samples(si,:) = mvnrnd(mix.mu(k(si),:),squeeze(mix.cov(k(si),:,:)));
end

load('faithful');
nSamples = size(data,1);
samples = data;

originalSamples = samples;

S = diag(std(samples).^2);
yhat = mean(samples);

samples = (S^(-1/2)*(samples-repmat(yhat,nSamples,1))')';

save(strrep(fname,'.h','.mat'), 'originalSamples', 'samples', 'S', 'yhat');

% plot samples
figure; clf
subplot(121);
plot(originalSamples(:,1),originalSamples(:,2),'.');
axis equal;
subplot(122);
plot(samples(:,1),samples(:,2),'.');
axis equal;
title('whitened samples');

% write to file
fp = fopen(fname, 'wt');
fprintf(fp, 'int nData = %i;\n', nSamples);
fprintf(fp, 'double data[%i][2] = {{%f,%f}', nSamples, samples(1,1), samples(1,2) );
for si=2:nSamples
   fprintf(fp, ',{%f,%f}', samples(si,1), samples(si,2) );
   if ~mod(si,5), fprintf(fp,'\n'); end
end
fprintf(fp, '};\n');
fclose(fp);

⌨️ 快捷键说明

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