📄 trndtdlg.m
字号:
function trndtdlg(action)
%MFDLG Create dialog for generating new fis with data.
% MFDLG(action,fisMatrix,varType,varIndex) will open a dialog
% box for fisMatrix using the default MF type 'trimf'.
% varType and varIndex indicate exactly which variable you
% want to add membership functions to.
% Kelly Liu 1-2-97
% Copyright (c) 1994-98 by The MathWorks, Inc.
% $Revision: 1.2 $ $Date: 1997/12/01 21:46:00 $
if ~isstr(action),
% For initialization, the fis matrix is passed in as the parameter
oldFigNumber=action;
action='#initialize';
end;
if strcmp(action,'#initialize'),
labelStr='Input Mumber and Output Number';
popupLabel1='MF type';
popupLabel2='Number of MFs';
%===================================
% Information for all objects
frmColor=192/255*[1 1 1];
btnColor=192/255*[1 1 1];
popupColor=192/255*[1 1 1];
editColor=255/255*[1 1 1];
border=6;
spacing=6;
figPos=get(0,'DefaultFigurePosition');
figPos(3:4)=[360 160];
maxRight=figPos(3);
maxTop=figPos(4);
btnWid=160;
btnHt=23;
%====================================
% The FIGURE
figNumber=figure( ...
'Tag','Input Number and OutPut Number',...
'NumberTitle','off', ...
'Color',[0.9 0.9 0.9], ...
'Visible','off', ...
'MenuBar','none', ...
'Units','pixels', ...
'Position',figPos, ...
'BackingStore','off');
figPos=get(figNumber,'position');
%====================================
% The MAIN frame
top=maxTop-border;
bottom=border;
right=maxRight-border;
left=border;
frmBorder=spacing;
frmPos=[left-frmBorder bottom-frmBorder ...
right-left+frmBorder*2 top-bottom+frmBorder*2]+[1 1 1 1];
mainFrmHndl=uicontrol( ...
'Style','frame', ...
'Units','pixel', ...
'Position',frmPos, ...
'BackgroundColor',frmColor);
%====================================
% The UPPER frame
top=maxTop-spacing-border;
bottom=border+8*spacing+3*btnHt;
right=maxRight-border-spacing;
left=border+spacing;
frmBorder=spacing;
frmPos=[left-frmBorder bottom-frmBorder ...
right-left+frmBorder*2 top-bottom+frmBorder*2]+[1 0 1 0];
varFrmHndl=uicontrol( ...
'Units','pixel', ...
'Style','frame', ...
'Position',frmPos, ...
'BackgroundColor',frmColor);
varSpacing=(top-bottom-2*btnHt);
%------------------------------------
% The STRING text field
n=1;
labelStr=labelStr;
pos=[left top-btnHt*n-varSpacing*(n-1) right-left btnHt];
uicontrol( ...
'Units','pixel', ...
'Style','text', ...
'BackgroundColor',frmColor, ...
'HorizontalAlignment','left', ...
'Position',pos, ...
'String',labelStr);
%====================================
% The POPUP frame
bottom=border+4*spacing+btnHt;
top=bottom+2*btnHt+spacing;
right=maxRight-border-spacing;
left=border+spacing;
frmBorder=spacing;
frmPos=[left-frmBorder bottom-frmBorder ...
right-left+frmBorder*2 top-bottom+frmBorder*2]+[1 0 1 0];
topFrmHndl=uicontrol( ...
'Style','frame', ...
'Units','pixel', ...
'Position',frmPos, ...
'BackgroundColor',frmColor);
%------------------------------------
% The POPUP text field
labelStr='input Number';
pos=[left top-btnHt btnWid-spacing btnHt];
uicontrol( ...
'Units','pixel', ...
'Style','text', ...
'HorizontalAlignment','left', ...
'Position',pos, ...
'BackgroundColor','white', ...
'String',labelStr,...
'Tag', 'inputNumtxt');
uicontrol( ...
'Units','pixel', ...
'Style','edit', ...
'HorizontalAlignment','left', ...
'Position',pos+[btnWid 0 0 0], ...
'BackgroundColor','white', ...
'String','2',...
'Tag', 'inputNum');
%------------------------------------
% The POPUP text field
labelStr='Output Number';
pos=[left top-2*btnHt-spacing btnWid-spacing btnHt];
uicontrol( ...
'Units','pixel', ...
'Style','text', ...
'HorizontalAlignment','left', ...
'Position',pos, ...
'BackgroundColor','white', ...
'String',labelStr,...
'Tag', 'outputNumtxt');
uicontrol( ...
'Units','pixel', ...
'Style','edit', ...
'HorizontalAlignment','left', ...
'Position',pos+[btnWid 0 0 0], ...
'BackgroundColor','white', ...
'String','1',...
'Tag', 'outputNum');
%====================================
% The CLOSE frame
bottom=border+spacing;
top=bottom+btnHt;
right=maxRight-border-spacing;
left=border+spacing;
frmBorder=spacing;
frmPos=[left-frmBorder bottom-frmBorder ...
right-left+frmBorder*2 top-bottom+frmBorder*2]+[1 0 1 0];
clsFrmHndl=uicontrol( ...
'Style','frame', ...
'Units','pixel', ...
'Position',frmPos, ...
'BackgroundColor',frmColor);
%------------------------------------
% The CANCEL button
labelStr='Cancel';
callbackStr='close(gcf)';
infoHndl=uicontrol( ...
'Style','push', ...
'Position',[left bottom btnWid btnHt], ...
'BackgroundColor',btnColor, ...
'String',labelStr, ...
'Callback',callbackStr);
%------------------------------------
% The OKAY button
labelStr='OK';
callbackStr='trndtdlg #okay';
closeHndl=uicontrol( ...
'Style','push', ...
'Position',[right-btnWid bottom btnWid btnHt], ...
'BackgroundColor',btnColor, ...
'String',labelStr, ...
'UserData',oldFigNumber, ...
'Callback',callbackStr);
% Normalize all coordinates
hndlList=findobj(figNumber,'Units','pixels');
set(hndlList,'Units','normalized');
% Uncover the figure
set(figNumber, ...
'Visible','on');
elseif strcmp(action,'#okay'),
figNumber=gcf;
oldFigNumber=get(gco,'UserData');
inHndl=findobj(figNumber,'Tag','inputNum');
outHndl=findobj(figNumber,'Tag','outputNum');
fis.inNum=str2num(get(inHndl, 'String'));
fis.outNum=str2num(get(outHndl, 'String'));
set(oldFigNumber,'Userdata', fis);
close(figNumber);
figure(oldFigNumber);
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -