image thumbnail
from inpdlg by Joshua Malina
An enhancement for the input_dlg.m supplied in matlab 5.3.

inpdlg_demo.m
% Demo script for running inpdlg version 1.32-135

% Program simulating Frequency measurments
N_FDat = 1024;

colorlist = {'red','blue','green','yellow','magenta'};
distlist  = 'Normal|Poisson|Rayleigh|Weibull';
% Program creating simulated random input data (Frequencies, Amplitudes, Phases,...)
prompt = {...
    'Enter number of frequency measurements:', ...				%  1
    'Enter 3 numbers:', ...										%  2
    'Enter sampling freq(KHz):',...								%  3
    'Enter signal length (in samples) and FFT size:',...		%  4
    'Enter the colormap name:', ...								%  5
    'Choose color (popup box):', ...							%  6
    'Choose color (list box):', ...								%  7
    'Enter input Bandwidth range(KHz):',...						%  8
    'Enter number of hopper peaks:', ...						%  9
    'Choose distribution:', ...									% 10
	'Enter signal Amplitude (...):',...							% 11      
    'Choose distribution (list box):'};							% 12
dlgTitle='Random frequency measurements Input';
NumLines=[1 12; 3 9; 1 0; 1 0; 1 10; 1 0; length(colorlist) 0; 1 0; ...
          1 2; 4 12; 1 0; 3 0];
DefAns=  {num2str(N_FDat), {'12','3.45','6.70'}, num2str(1024), ...
       [num2str(512),' ',num2str(8192)], 'hsv', ...
       {'red','blue','green','yellow','magenta'}, colorlist, [num2str(1000),' ', ...
       num2str(1250)], num2str(4), 'Normal|Poisson|Rayleigh|Weibull' , ...
       '1.000', distlist};
% PromptDef(1,:) = 0 for edit box
%                  N for Popup menu(N is  the initial selection)    
%                 -N for ListBox(ListInit{N} is the initial selection)    
PromptDef(1,:)=  [0, 0, 0, 0, 0, 3, -1, 0, 0, 4, 0, -2];
% PromptDef(2,:) = 1 for initially disabled Quests
%      for ListBox:	1  initially disabled ListBox
%                  	2  Single item selection ListBox
%                    3  Single item selection + initially disabled ListBox
PromptDef(2,:)=  [1, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0,  2];
Resize = 'on';
% ListInit{N} is the initial selection for ListBox(N) - see PromptDef(1,:)
ListInit = {[1,2,4], [3] };	

% For Input dialog consisting of frames of flags exclusively:
%prompt = {};
%DefAns = {};
%NumLines = 1;

% CheckBox\RadioButton input
clear AnsFlg1;
CCflg = logical(1);ACflg = logical(0);

[AAA_FMflg,AA_AMflg] = deal(logical(0));
AB_AMflg = 1;

% typ - 'chk' for checkboxes
MesMet = struct('Frm_Nam',{'Measure Method:'},'typ',{'chk'}, ...
                'ACflg',{{ACflg; 'Auto Correl'; 0}}, ...
                'CCflg',{{CCflg; 'Correl Coef'}},'En_Quest',{{[401 402];[1 2 3]}});
%  ACflg - {{ACflg, 			% Initial Value for AnsFlg1{1}.ACflg
%            'Auto Correl',% Name Tag for AnsFlg1{1}.ACflg
%            L}} 				% L=1 AnsFlg1{1}.ACflg initially disabled
%                          %  =0 AnsFlg1{1}.ACflg initially enabled (default)
%  En_Quest - {{[401 402]; % checking ACflg will enable items 1 2 of Frame 4 (AnsFlg1(4))
%                          % unchecking ACflg will disable them
%               [1 2 3];}} % checking CCflg will enable Prompts 1 2 3
%                          % unchecking CCflg will disable them
AnsFlg1(1)={MesMet};
MesMet = struct('Frm_Nam',{'Measur Metod:'},'typ',{'chk'}, ...
   'ACflg',{CCflg},'CCflg',{{ACflg;1}},'CCflg1',{{ACflg; 'Pattern figure';1}});
AnsFlg1(2)={MesMet};

% typ - 'rad' for radiobuttons
MesMet = struct('Frm_Nam',{'Measure MetMes Method:'},'typ',{'rad'}, ...
   'AAA_FMflg',{{AAA_FMflg}}, ...
   'AA_AMflg',{{AA_AMflg}}, ...
   'AB_AMflg',{{AB_AMflg}}, ...
   'En_Quest', {{[];[202 7 203]}});
AnsFlg1(3)={MesMet};
MesMet = struct('Frm_Nam',{'Measure Met:'},'typ',{'rad'}, ...
   'ABA_FMflg',{{AAA_FMflg;1;'AB FMflg'}}, 'AB_AMflg',{{AA_AMflg;1}}, 'AC_AMflg',{{0}}, ...
   'AD_AMflg',{{AB_AMflg;'Signal figure'}},'En_Quest',{{[1 8 9 101 102];[];[1 3 101]}});
AnsFlg1(4)={MesMet};

% For Input dialog consisting of edit boxes exclusively:
%AnsFlg1 = {};

[Answer, figfmen1, AnsFlg1] =inpdlg(prompt, dlgTitle, NumLines, ...
             DefAns, PromptDef, AnsFlg1, Resize, ListInit)

% Display AnsFlg1
%AnsFlg1{:}
       
if isempty(figfmen1), 
   disp('Random Frequency measurements Stage skipped.'); 
   return;
else,
   if isempty(Answer),
      disp(['Random Frequency measurements input dialog didn`t pro',...
            'vide any output']); 
      disp('Random Frequency measurements Stage skipped.'); 
      return;
   else,
      [N_FDat, count]  = sscanf(Answer{1},'%d',1);
      [N_FFT, count]  = sscanf(Answer{4},'%*d %d',1);
      [M_Color, count] = sscanf(Answer{6},'%s',1);
      
      Arr3 = str2num(strvcat(Answer{2}))
      Arrdoub = str2double(Answer{2})
      disp('Answer{7} =');								% Display ListBoxes` results 
      disp(Answer{7});
      disp('Answer{10} =');	 
      disp(Answer{12});
      
      [ACflg, CCflg] = deal(AnsFlg1{1}.ACflg{1}, AnsFlg1{1}.CCflg{1});
   end;
end;

Contact us at files@mathworks.com