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

📄 eigtoolgui.m

📁 个人特征结构配置GUI界面实现程序
💻 M
📖 第 1 页 / 共 4 页
字号:
function fig = eigtoolgui(fn_called,fig_no)% function fig = eigtoolgui(fn_called,fig_no)%% This file actually creates the GUI. If called with no input arguments,% the GUI will start and wait for the user to enter a matrix. A single% argument (the matrix to use) can be passed, starting the GUI with that% matrix. The more usual method of invoking the GUI is to call the% function psa, which allows the use of additional options.%% fn_called    A matrix to default to% fig_no       A number for the figure (optional)%% The original version of EigTool was designed and built at Oxford % University during 2000-2002 by Thomas G. Wright in collaboration with % Mark Embree and Lloyd N. Trefethen.% Check for preferences first. If they don't exist, create them.if ~ispref('EigTool'),  set_eigtool_prefs('default');else  ET_ver = getpref('EigTool','version');  if ET_ver ~= 2.04,    set_eigtool_prefs('update');  end;end;% Update the usage countusage_count = getpref('EigTool','usage_count');setpref('EigTool','usage_count',usage_count+1);%% Figureif nargin<2, h0 = figure('visible','off'); fig_no = h0;elseif fig_no>0, h0 = figure(fig_no,'visible','off');% fig_no is negative if the figure already exists% The correct number is then -fig_noelse  h0 = -fig_no;end; set(h0,'DoubleBuffer','on');set(h0,'FileName','');set(h0,'KeyPressFcn','dokeypress(gcbf)');set(h0,'Name','EigTool');set(h0,'PaperPosition',[18 180 576 432]);set(h0,'PaperUnits','points');%pos = get(0,'defaultFigurePosition'); pos(2) = pos(2)+pos(4)-478; pos(3) = 526; pos(4) = 478;%set(h0,'Position',pos);% If fig_no is positive, we have a new figure, so it needs to be positionedif fig_no>0,  set(h0,'Position',[210   62  526  478]);else% If it's negative, just need to make sure width & height are correct  pos = get(h0,'pos');  pos(3:4) = [526 478];  set(h0,'pos',pos);end;%set(h0,'ResizeFcn','doresize(gcbf)');set(h0,'Resize','off');set(h0,'Tag','EigTOOL');set(h0,'ToolBar','none');set(h0,'MenuBar','none');set(h0,'UserData',[]);set(h0,'WindowButtonDownFcn','eigtool_switch_fn(''PsArea'');');set(h0,'DefaultaxesCreateFcn','plotedit(gcbf,''promoteoverlay''); ');%% Set the colourmap tooset_gui_colour_map(h0);%% Menush1 = uimenu('Parent',h0, ...	'Callback','filemenufcn(gcbf,''CreateCode'')', ...	'Label','&File', ...	'Tag','FileMenu');h2 = uimenu('Parent',h1, ...	'Callback','eigtool_switch_fn(''Import'')', ...	'Label','&New Matrix...', ...	'Tag','Import');h2 = uimenu('Parent',h1, ...	'Callback','eigtool_switch_fn(''FileSave'')', ...	'Label','&Save Current State', ...        'Separator','on', ...	'Tag','FileSave');h2 = uimenu('Parent',h1, ...	'Callback','eigtool_switch_fn(''FileSaveAs'')', ...	'Label','Save Current State &As...', ...	'Tag','FileSaveAs');h2 = uimenu('Parent',h1, ...	'Callback','', ...	'Label','&Export...', ...        'Separator','on', ...	'Tag','Export');h3 = uimenu('Parent',h2, ...	'Callback','eigtool_switch_fn(''ExportEWS'')', ...	'Label','&Eigenvalues...', ...	'Tag','ExportEws');h3 = uimenu('Parent',h2, ...	'Callback','eigtool_switch_fn(''ExportMtx'')', ...	'Label','&Original matrix...', ...	'Tag','ExportMtx');h3 = uimenu('Parent',h2, ...	'Callback','eigtool_switch_fn(''ExportSchur'')', ...	'Label','&Schur factor...', ...	'Tag','ExportSchur');h3 = uimenu('Parent',h2, ...	'Callback','eigtool_switch_fn(''ExportPSA'')', ...	'Label','&Pseudospectra data...', ..h1 = uimenu('Parent',h0, ...	'Label','&Extras', ...	'Tag','ExtrasMenu');h2 = uimenu('Parent',h1, ...        'ForegroundColor',[.7 .25 .18], ...	'Callback','et_download_mex', ...	'Label','&Speeding up EigTool', ...	'Tag','DownloadMEX');h2 = uimenu('Parent',h1, ...	'Callback','eigtool_switch_fn(''CreateCode'')', ...	'Label','&Options Code for Printing', ...        'Separator','on', ...	'Tag','CreateCode');h2 = uimenu('Parent',h1, ...        'Callback','eigtool_switch_fn(''PrintOnly'')', ...        'Label','Save for &Quick Print Creation...', ...        'Tag','PrintOnly');h2 = uimenu('Parent',h1, ...        'Callback','eigtool_switch_fn(''Safety'');', ...        'Label','Projection &Level...', ...        'Separator','on', ...        'Tag','Safety');h2 = uimenu('Parent',h1, ...        'Callback','eigtool_switch_fn(''Colour'');', ...        'Label','&Colour', ...        'Separator','on', ...        'Tag','Colour');h2 = uimenu('Parent',h1, ...        'Callback','eigtool_switch_fn(''ThickLines'');', ...        'Label','&Thick Lines', ...        'Tag','ThickLines');h2 = uimenu('Parent',h1, ...        'Callback','eigtool_switch_fn(''UnequalLevels'');', ...        'Label','&Arbitrary Levels', ...        'Tag','UnequalLevels');h2 = uimenu('Parent',h1, ...        'Callback','eigtool_switch_fn(''FOVnpts'');', ...        'Label','Accuracy of &FoV comp.', ...        'Tag','FOVnpts');h2 = uimenu('Parent',h1, ...        'Callback','eigtool_switch_fn(''DisplayEWS'');', ...        'Label','Display &Eigenvalues', ...        'Separator','on', ...        'Tag','DisplayEWS');h2 = uimenu('Parent',h1, ...        'Callback','eigtool_switch_fn(''DisplayPSA'');', ...        'Label','Display &Pseudospectra', ...        'Tag','DisplayPSA');h2 = uimenu('Parent',h1, ...        'Callback','eigtool_switch_fn(''ShowDimension'');', ...        'Label','Display &Dimension', ...        'Separator','on', ...        'Tag','ShowDimension');h2 = uimenu('Parent',h1, ...        'Callback','eigtool_switch_fn(''ShowGrid'');', ...        'Label','Display &Gridpoints', ...        'Tag','ShowGrid');h2 = uimenu('Parent',h1, ...        'Callback','eigtool_switch_fn(''DisplayImagA'');', ...        'Label','Display &Imaginary Axis', ...        'Tag','DisplayImagA');h2 = uimenu('Parent',h1, ...        'Callback','eigtool_switch_fn(''DisplayUnitC'');', ...        'Label','Display &Unit Circle', ...        'Tag','DisplayUnitC');h2 = uimenu('Parent',h1, ...        'Callback','eigtool_switch_fn(''DisplayColourbar'');', ...        'Label','Display Colour&Bar', ...        'Separator','on', ...        'Tag','DisplayColourbar');h1 = uimenu('Parent',h0, ...        'Enable','off', ...	'Label','&ARPACK/eigs', ...	'Tag','ARPACKMenu');h2 = uimenu('Parent',h1, ...	'Callback','eigtool_switch_fn(''ChooseP'')', ...	'Label','Maximum &Subspace Size (p)...', ...	'Tag','ChooseP');h2 = uimenu('Parent',h1, ...	'Callback','eigtool_switch_fn(''ChooseTol'')', ...	'Label','Convergence &Tolerance (tol)...', ...	'Tag','ChooseTol');h2 = uimenu('Parent',h1, ...	'Callback','eigtool_switch_fn(''ChooseMaxit'')', ...	'Label','Maximum Number of &Restarts (maxit)...', ...	'Tag','ChooseMaxit');h2 = uimenu('Parent',h1, ...	'Callback','eigtool_switch_fn(''ChooseV0'')', ...	'Label','Starting &Vector (v0)...', ...	'Tag','ChooseV0');h2 = uimenu('Parent',h1, ...	'Callback','eigtool_switch_fn(''ARPACK_auto_ax'')', ...        'Checked','on', ...	'Label','&Automatic axes', ...        'Separator','on', ...	'Tag','ARPACK_auto_ax');h2 = uimenu('Parent',h1, ...	'Callback','', ...	'Label','Show &Progress...', ...        'Separator','on', ...	'Tag','ARPACKProg');h3 = uimenu('Parent',h2, ...	'Callback','eigtool_switch_fn(''ProgRVals'')', ...        'Checked','on', ...	'Label','&Ritz Values/Shifts', ...	'Tag','ProgRVals');h3 = uimenu('Parent',h2, ...	'Callback','eigtool_switch_fn(''ProgAllShifts'')', ...	'Label','&All Shifts', ...	'Tag','ProgAllShifts');h3 = uimenu('Parent',h2, ...	'Callback','eigtool_switch_fn(''ProgPSA'')', ...	'Label','&Pseudospectra', ...	'Tag','ProgPSA');h1 = uimenu('Parent',h0, ...        'Enable','on', ...	'Label','&Transients', ...	'Tag','TransientsMenu');h2 = uimenu('Parent',h1, ...	'Callback','eigtool_switch_fn(''MatrixPowers'')', ...	'Label','Matrix &Powers', ...	'Tag','MtxPowers');h2 = uimenu('Parent',h1, ...	'Callback','eigtool_switch_fn(''MatrixExp'')', ...	'Label','Matrix &Exponentials', ...	'Tag','MtxExp');%h2 = uimenu('Parent',h1, ...%	'Callback','', ...%	'Label','&Lower Bound', ...%        'Separator','on', ...%	'Tag','TransientLB');h3 = uimenu('Parent',h1, ...	'Callback','eigtool_switch_fn(''TransientLB'')', ...	'Label','&Compute a Bound', ...        'Separator','on', ...	'Tag','TransientLB');h2 = uimenu('Parent',h1, ...	'Callback','eigtool_switch_fn(''TransientBestLB'')', ...	'Label','&Best Estimate Lower Bound', ...	'Tag','TransientBestLB');h3 = uimenu('Parent',h1, ...	'Callback','type(''trans_lb_et_help''); disp(''Press <RETURN> to continue...'');', ...	'Label','&Information', ...        'Separator','on', ...	'Tag','TransientLBInfo');% Build the 'Numbers' menubuild_numbers_menu(h0);mnu_h = uimenu('Parent',h0, ...        'Label','&Demos', ...        'Tag','DemosMenu');h2 = uimenu('Parent',mnu_h, ...        'Callback','eigtool_switch_fn(''FinerGrid'')', ...        'Label','&Finer grid (slower)', ...        'Tag','FinerGrid');h1 =uimenu('Parent',mnu_h, ...        'Callback','', ...        'Label','&Dense matrices', ...        'Separator','on', ...        'Tag','DenseMatrices');% Free letters in Dense submenu: JPQSYh2 = uimenu('Parent',h1, ...        'Callback','', ...        'Label','&Airy', ...        'Tag','DemoAiry');h3 = uimenu('Parent',h2, ...        'Callback','eigtool_switch_fn(''DemoAiryS'')', ...        'Label','&Compute pseudospectra', ...        'Tag','AiryPSA');h3 = uimenu('Parent',h2, ...        'Callback','eigtool_switch_fn(''DemoAiryC'')', ...        'Label','&Description and code', ...        'Separator','on', ...        'Tag','AiryCode');h2 = uimenu('Parent',h1, ...        'Callback','', ...        'Label','&Basor-Morrison', ...        'Tag','DemoToeplitzPCS');h3 = uimenu('Parent',h2, ...        'Callback','eigtool_switch_fn(''DemoToeplitzPCSS'')', ...        'Label','Compute pseudospectra (&Faster: N=50)', ...        'Tag','ToeplitzPCSPSAs');h3 = uimenu('Parent',h2, ...        'Callback','eigtool_switch_fn(''DemoToeplitzPCSL'')', ...        'Label','Compute pseudospectra (&Slower: N=100)', ...        'Tag','ToeplitzPCSPSAl');h3 = uimenu('Parent',h2, ...        'Callback','eigtool_switch_fn(''DemoToeplitzPCSC'')', ...        'Label','&Description and code', ...        'Separator','on', ...        'Tag','ToeplitzPCSCode');h2 = uimenu('Parent',h1, ...        'Callback','', ...        'Label','&Boeing &767', ...        'Tag','DemoBoeing');h3 = uimenu('Parent',h2, ...        'Callback','eigtool_switch_fn(''DemoBoeingL'')', ...        'Label','Compute pseudospectra (&Unstable)', ...        'Tag','BoeingPSAs');h3 = uimenu('Parent',h2, ...        'Callback','eigtool_switch_fn(''DemoBoeingS'')', ...        'Label','Compute pseudospectra (&Stable)', ...        'Tag','BoeingPSAl');h3 = uimenu('Parent',h2, ...        'Callback','eigtool_switch_fn(''DemoBoeingC'')', ...        'Label','&Description and code', ...        'Separator','on', ...        'Tag','BoeingCode');h2 = uimenu('Parent',h1, ...        'Callback','', ...        'Label','&Chebspec', ...        'Tag','DemoChebspec');h3 = uimenu('Parent',h2, ...        'Callback','eigtool_switch_fn(''DemoChebspecS'')', ...        'Label','&Compute pseudospectra', ...        'Tag','ChebspecPSA');h3 = uimenu('Parent',h2, ...        'Callback','eigtool_switch_fn(''DemoChebspecC'')', ...        'Label','&Description and code', ...        'Separator','on', ...        'Tag','ChebspecCode');h2 = uimenu('Parent',h1, ...        'Callback','', ...        'Label','Co&mpanion', ...        'Tag','DemoCompanion');h3 = uimenu('Parent',h2, ...        'Callback','eigtool_switch_fn(''DemoCompanionS'')', ...        'Label','&Compute pseudospectra', ...        'Tag','CompanionPSA');h3 = uimenu('Parent',h2, ...        'Callback','eigtool_switch_fn(''DemoCompanionC'')', ...        'Label','&Description and code', ...        'Separator','on', ...        'Tag','CompanionCode');h2 = uimenu('Parent',h1, ...        'Callback','', ...        'Label','Co&nvection-Diffusion', ...        'Tag','DemoConvDiff');h3 = uimenu('Parent',h2, ...        'Callback','eigtool_switch_fn(''DemoConvDiffS'')', ...        'Label','Compute pseudospectra (&Faster: N=40)', ...        'Tag','ConvDiffPSAs');h3 = uimenu('Parent',h2, ...        'Callback','eigtool_switch_fn(''DemoConvDiffL'')', ...        'Label','Compute pseudospectra (&Slower: N=100)', ...        'Tag','ConvDiffPSAl');

⌨️ 快捷键说明

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