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

📄 mathplt.m

📁 ADSP TOOLBOX: Version 2.0 and gui m-files
💻 M
字号:
function mathplt
%MATHPLT: Plotting control for MATHGUI


% 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');

   math_edt = ui(3);
   autoplot = ui(12);
   plt_btn  = ui(13);
   n_val    = ui(5);
%   m_val    = ui(11);
   x_val    = ui(7);
   num_val  = ui(27);
   axs      = ui(20);

%%%%%%%%
if get(ui(6),'userdata')==1
set(f,'currentaxes',ui(20));
zoom out,zoom reset
end
%%%%%%%

show = get(math_edt,'value');
num =eval(get(num_val,'string'));
if num ~= round(num) | num <= 1
      errordlg('number of points must be > 1.','Input Error');
      return;
end
%num=fix(num);

if show>3
n_ord = ['[',get(n_val,'string'),']'];
n=eval(n_ord);
if n ~= round(n) | n < 0
      errordlg('n must be an integer >= 0.','Input Error');
      return;
end
%m_ord = ['[',get(m_val,'string'),']'];
%m=eval(m_ord);
%if length(m) > 1
%      errordlg('m ust be a single value.','Input Error');
%      return;
%end
set(ui(16),'userdata',n);
end

range = eval(['[',get(x_val,'string'),']']);
   if length(range) ~= 2,
      errordlg('Plot range must be of the form   min, max.','Input Error');
      return;
   end
   if diff(range) <= 0,
      errordlg('Plot max range must EXCEED plot min range.','Input Error');
      return;
   end

   x_range = linspace(range(1),range(2),num+1);
x_range=x_range(:);
set(ui(15),'userdata',x_range);
count = 0;y=[];
   if show == 1
     y=si(x_range);
      tit='Sine Integral';
   elseif show == 2
     y=sx(x_range);
      tit='Fresnel Integral of First Kind';

   elseif show == 3
      y=cx(x_range);
      tit='Fresnel Integral of Second Kind';
   elseif show == 4,
        for k = n
            count = count+1;
            y=[y chebyfun(k,x_range,1)];
        end
       tit=['Chebyshev Functions of order n = ' n_ord];

   elseif show == 5,
        for k = n
            count = count+1;
            y=[y chebyfun(k,x_range,2)];
        end
       tit=['Chebyshev Functions of Second Kind and order n = ' n_ord];

   elseif show == 6,
        for k = n
            count = count+1;
            y=[y besjn(k,x_range)];
        end
%        y=real(y);
       tit=['Bessel Function J of order n = ' n_ord];

   elseif show == 7,
        for k = n
            count = count+1;
            y=[y besjnu(k,x_range)];
        end
%        y=real(y);
       tit=['Spherical Bessel Function j of order n = ' n_ord];
end
axes(axs);
plot(x_range,y);
set(get(axs,'title'),'string',tit);
set(get(axs,'xlabel'),'string','Variable  x');
set(axs,'xlim',[min(x_range),max(x_range)],'color','k');
set(axs,'xgrid','on','ygrid','on','ylim',[min(y(:)) max(y(:))]);
set(ui(14),'userdata',y);

⌨️ 快捷键说明

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