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

📄 mog1.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 = 'mog1.h';

mix.K = 2;
mix.w = [ .6 .4 ];
mix.mu = [ -1.2 1.2 ];
mix.std = [ 1 1 ];

% mix.K = 4;
% mix.w = [ .3 .2 .2 .3];
% mix.mu = [ -10 0 5 -5];
% mix.std = [ 1 .5 .2 1];

% mix.K = 1;
% mix.w = [ 1 ]; %.5 ];
% mix.mu = [ -5 ]; %5 ];
% mix.std = [ 1 ]; %1 ];

% draw samples
nSamples = 500;
samples = zeros(nSamples, 1);
k = sample_discrete( mix.w, nSamples, 1 );
for si=1:nSamples
   samples(si) = randn*mix.std(k(si)) + mix.mu(k(si));
end

% plot samples
figure(1); clf;
[hn hx]=hist(samples,50);
bar(hx,hn/max(hn));
hold on;
x = -5:0.1:5;
y = zeros(size(x));
for ci=1:mix.K
   y = y + exp( -(x-mix.mu(ci)).^2 / mix.std(ci)^2 )*mix.w(ci);
end
plot(x,y/max(y),'r');
y = exp( -(x-mean(samples)).^2 / std(samples)^2 );
plot(x,y/max(y),'g');

save('mog1', 'samples');

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

⌨️ 快捷键说明

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