📄 randplt.m
字号:
function randplt
% RANDPLT Plotting routine for RANDGUI.
% ADSP Toolbox: Version 2.0
% For use with "Analog and Digital Signal Processing", 2nd Ed.
% Published by PWS Publishing Co.
%
% Ashok Ambardar, EE Dept. MTU, Houghton, MI 49931, USA
% http://www.ee.mtu/faculty/akambard.html
% e-mail: akambard@mtu.edu
% Copyright (c) 1998
f = gcf;
ui = get(f,'userdata');
num_of_sigs = str2num(get(ui(10),'string'));
sig_len = str2num(get(ui(13),'string'));
num_of_bins = str2num(get(ui(16),'string'));
mean_val = str2num(get(ui(21),'string'));
mean_txt = ui(3);
st_dev_txt = ui(5);
var_txt = ui(7);
rand_sigs = ui(23:24);
rand_axes = ui(22);
hist_axes = ui(25);
%%%%%%%%%
if get(ui(15),'userdata')==1
set(f,'currentaxes',ui(22));
zoom out,zoom reset
set(f,'currentaxes',ui(25));
zoom out,zoom reset
end
%%%%%%%%%%
n_vec = 0:(sig_len-1);
new_y = zeros(size(n_vec));
dist_type = get(ui(19),'value');
for k = 1:num_of_sigs,
if dist_type==1,
y = randist(n_vec,'nor',mean_val);
elseif dist_type==2,
y = randist(n_vec,'uni',mean_val);
elseif dist_type==3,
y = randist(n_vec,'exp',mean_val);
elseif dist_type==4,
y = randist(n_vec,'gam',mean_val);
elseif dist_type==5,
y = randist(n_vec,'ray',mean_val);
% elseif dist_type==6,
% y = randist(n_vec,'lap',mean_val);
end
new_y = new_y + y;
end
if ~length(new_y), return; end
set(rand_sigs(1),'xdata',n_vec,'ydata',new_y);
set(rand_sigs(2),'xdata',n_vec,'ydata',new_y);
nmin=min(n_vec);nmax=max(n_vec);mmin=min(new_y);mmax=max(new_y);
set(rand_axes,'xlim',[nmin,nmax],'ylim',[mmin,mmax]);
set(ui(30),'userdata',[new_y(:) n_vec(:)]);
axes(hist_axes);
[n,x] = hist(new_y,num_of_bins);
set(ui(31),'userdata',x);
set(ui(32),'userdata',n);
axes(hist_axes)
%hh=get(hist_axes,'vis');
bar(x,n);grid on;
set(hist_axes,'color','k');
title(['Histrogram: ',int2str(num_of_bins),' bins']);
axs_pos=get(hist_axes,'pos');
%if axs_pos(4)==160,
%set(rand_axes,'pos',[210,250,390,160],'vis','on');
%set(hist_axes,'pos',[210,40,390,160],'vis','on');
%end
% mean
m_y = mean(new_y);
set(mean_txt,'string',num2str(m_y));
% standard deviation
std_y = std(new_y);
set(st_dev_txt,'string',num2str(std_y));
% variance
var_y = std_y*std_y;
set(var_txt,'string',num2str(var_y));
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -