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

📄 pzpvar.m

📁 很多matlab的源代码
💻 M
字号:
function [val1,val2] = pzpvar(mode)
%PZPVAR Support Function for dfdpzp


% 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


if mode == 0,
 f = gcf;
else
 f2 = gcf;
 f = get(f2,'userdata');
end
btn = get(f,'userdata');
ui_han = get(btn(4),'userdata');

if mode==0, % Setup
 
 figure('numbertitle','off','menubar','none','name','To Workspace',...
        'pos',[30,50,200,90],'color',[0.5,0.5,0.5],'resize','off',...
        'userdata',f);

% Variable Input Fields
 uicontrol('style','text','string','Variable Names',...
           'pos',[25,65,150,15],'horizontalalignment','center',...
           'backgroundcolor',[0,0.5020,0]);
 uicontrol('style','text','string','Num:',...
           'pos',[0,40,40,15],'horizontalalignment','right');
 ui_han(1) = uicontrol('style','edit','pos',[40,40,55,17],'backgroundcolor','w',...
                       'callback','pzpvar(1)');
                     
 uicontrol('style','text','string','Den:',...
           'pos',[95,40,40,15],'horizontalalignment','right');
 ui_han(2) = uicontrol('style','edit','pos',[135,40,55,17],'backgroundcolor','w',...
                       'callback','pzpvar(1)');
                     
 ui_han(3) = uicontrol('style','push','pos',[27,10,60,20],'string','OK');
 uicontrol('style','push','pos',[114,10,60,20],'string','Cancel',...
           'callback','pzpvar(3)');

 set(btn(4),'userdata',ui_han);
 
elseif mode==1, % edit fields

% build output and input strings
 output_str = [];
 
 for k = 1:2,
  var_str = get(ui_han(k),'string');
  if length(var_str),
   output_str = [output_str,var_str,','];
  end
 end
 
% remove extra comma 
 output_str(length(output_str))=[];

% setup callback to pass desired variables to workspace
 callback_str = ['[',output_str,']=pzpvar(2);'];
 set(ui_han(3),'callback',callback_str);

elseif mode==2, % OK

 all_poles = get(btn(1),'userdata');
 all_zeros = get(btn(2),'userdata');
 
 if isempty(all_zeros),
  var1 = 1;
 else
  zer = [];
  for k=1:length(all_zeros),
   xdata = get(all_zeros(k),'xdata');
   ydata = get(all_zeros(k),'ydata');
   zeros_loc = xdata + ydata*i;
   zer = [zeros_loc.';zer];
  end
  var1 = real(poly(zer.'));
 end
 
 if isempty(all_poles),
  var2 = 1;
 else
  pol = [];
  for k=1:length(all_poles),
   xdata = get(all_poles(k),'xdata');
   ydata = get(all_poles(k),'ydata');
   poles_loc = xdata + ydata*i;
   pol = [poles_loc.';pol];
  end
  var2 = real(poly(pol.'));
 end

 ct=1;
 for k = 1:2,
  eval(['val',int2str(ct),'=var',int2str(k),';']);
  ct=ct+1;
 end

 close(f2);

elseif mode==3, % Cancel

 close(f2);
 
end

⌨️ 快捷键说明

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