?? yichuan.m
字號:
'position',TextPosition,'Horizontal','left',...
'string', '本軟件的目標函數是非線性,不連續的函數。因此,該優化軟件采用matlab的ga工具箱。遺傳算法使用目標函數(適應度)這一信息進行搜索,而不需要導數等其他信息。遺傳算法不能求得極小點,只能求得較小點。因此,遺傳算法結束后,將自動對所求得點進行pattern search,得到最優點.', 'fontsize',13 );
FrameXPos = TabSpace * 2 +30;
FrameWidth = (FigureWidth - TabSpace * 6) * 0.5+200 ;
FrameHeight = 180 ;
FrameYPos = TitlePosition(2) - FrameHeight - TabSpace * 2-210 ;
Frame1Position = [FrameXPos FrameYPos FrameWidth FrameHeight] ;
% generate a frame .
TitleHandle = uicontrol(FigureHandle,'style','frame', 'Units','pixels',...
'position',Frame1Position );
TextXPos = Frame1Position(1) + 15 ;
TextYPos = Frame1Position(2) + Frame1Position(4) - 12 ;
TextWidth = 80 ;
TextPosition = [TextXPos TextYPos TextWidth TextHeight] ;
SubtitleHandle = uicontrol(FigureHandle, 'Style','text', 'Units','pixels',...
'position',TextPosition,'Horizontal','center',...
'string', '參數輸入', 'fontsize',13 );
TextXPos = Frame1Position(1) + 15 +20;
TextYPos = Frame1Position(2) + Frame1Position(4) - 150;
TextWidth = 450 ;
TextPosition = [TextXPos TextYPos TextWidth 120] ;
SubtitleHandle = uicontrol(FigureHandle, 'Style','text', 'Units','pixels',...
'position',TextPosition,'Horizontal','left',...
'string', '遺傳算法是一種基于生物自然選擇遺傳機理的隨機搜索方法,該軟件只對種群進行調整,其他均按matlab7.0的ga工具箱的默認參數', 'fontsize',13 );
Text1 = uicontrol(FigureHandle,'style','text', 'Units','pixels',...
'position',[80 90 80 30] ,'Horizontal','center',...
'string', '種群大小', 'fontsize',13 );
edit1 = uicontrol(FigureHandle, 'Style', 'edit', 'Units','pixels',...
'position', [230 90 80 25], 'Horizontal','center', 'BackgroundColor', [1 1 1], ...
'Tag','edit1' , ...
'String', 0, 'FontSize',13, ...
'Callback', ['yichuan(''edit1_Callback'',gcbo)'] ) ;
% define the parameters of the buttons .
ButtonString = { '上一步'; '導入'; '保存'; '優化' } ;
ButtonTag = { 'PreviousButton'; 'LoadButton'; 'SaveButton'; 'NextButton' } ;
ButtonCallback = { ['yichuan(''PreviousButton_Callback'',gcbo)']; ...
['yichuan(''LoadData_Callback'',gcbo)']; ...
['yichuan(''SaveData_Callback'',gcbo)']; ...
['yichuan(''NextButton_Callback'',gcbo)'] } ;
ButtonWidth = 80 ;
ButtonHeight = 25 ;
ButtonXPos = FigureWidth - ButtonWidth * 4 - TabSpace * 6 ;
ButtonYPos = TabSpace * 2 ;;
ButtonPosition = [ButtonXPos ButtonYPos ButtonWidth ButtonHeight] ;
for num = 1: 4
TempButtonPosition = ButtonPosition ;
TempButtonPosition(1) = TempButtonPosition(1) + (num - 1) * (ButtonWidth + TabSpace) ;
% generate the pushbutton: OK .
ButtonHandle = uicontrol( 'Parent', FigureHandle, 'Units', 'Pixels', 'Position', TempButtonPosition, ...
'Style', 'pushbutton', 'Tag',ButtonTag{num}, 'string', ButtonString{num}, 'Fontsize',12, ...
'Callback', ButtonCallback{num} ) ;
end
handles = guihandles( FigureHandle ) ;
guidata( FigureHandle, handles ) ;
% --------------------------------------------------------------------------
function init_FigureContent( h )
handles = guidata( h ) ;
% get the T_SimulationData .
T_SimulationData = getappdata( handles.yichuan, 'T_SimulationData' ) ;
if isempty( T_SimulationData )
T_SimulationData = T_youhua( 'Get_DefaultT_SimulationData' ) ;
% save the data .
setappdata( handles.yichuan, 'T_SimulationData', T_SimulationData ) ;
end
set(handles.edit1,'string',T_SimulationData.size);
%-------------------------------------------------------------
% --------------------------------------------------------------------------
function edit1_Callback( h )
handles = guidata( h ) ;
% get the T_SimulationData .
T_SimulationData = getappdata( handles.yichuan, 'T_SimulationData' ) ;
size = str2double(get(handles.edit1, 'String'));
if isnan(size)
set(handles.edit1, 'String', 0);
errordlg('Input must be a number','Error');
end
T_SimulationData.size=size;
setappdata( handles.yichuan, 'T_SimulationData', T_SimulationData ) ;
%---------------------------------------------------------------
function LoadData_Callback( h )
handles = guidata( h ) ;
PromptString = '選擇數據文件.' ;
WarningString1 = '文件格式出錯。 ' ;
WarningString2 = '選擇的文件不是正確的數據文件。 ' ;
[ FileName , PathName ] = uigetfile( {'*.mat','數據文件(*.mat)'}, PromptString ) ;
if FileName == 0
return ;
else
[TempPathName, FileName, FileTypeName, Version] = fileparts( FileName ) ;
if ~strcmp( FileTypeName, '.mat' ) ;
warndlg( WarningString1, '警告', 'modal' ) ;
return ;
end
SaveFile = fullfile( PathName, [FileName, FileTypeName, Version] ) ;
end
T_SimulationData = [] ;
try
load( SaveFile, 'T_SimulationData' ) ;
catch
end
if isempty( T_SimulationData ) | ~isstruct( T_SimulationData );
warndlg( WarningString1, '警告', 'modal' ) ;
return ;
end
% save the data .
setappdata( handles.yichuan, 'T_SimulationData', T_SimulationData ) ;
% display the new data .
init_FigureContent( h ) ;
% --------------------------------------------------------------------------
function SaveData_Callback( h )
handles = guidata( h ) ;
% get the T_SimulationData .
T_SimulationData = getappdata( handles.yichuan, 'T_SimulationData' ) ;
PromptString = '保存數據文件.' ;
MessageString = '保存數據文件成功。 ' ;
[ FileName , PathName ] = uiputfile( {'*.mat','數據文件(*.mat)'}, PromptString ) ;
if FileName == 0
return ;
else
[TempPathName, FileName, FileTypeName, Version] = fileparts( FileName ) ;
if ~strcmp( FileTypeName, '.mat' ) ;
FileTypeName = '.mat' ;
else
end
SaveFile = fullfile( PathName, [FileName, FileTypeName, Version] ) ;
end
% save the result file .
save( SaveFile, 'T_SimulationData' ) ;
msgbox( MessageString ) ;
% --------------------------------------------------------------------------
function PreviousButton_Callback( h )
handles = guidata( h ) ;
% get the T_SimulationData .
T_SimulationData = getappdata( handles.yichuan, 'T_SimulationData' ) ;
% return the wizard figure .
Youhua( T_SimulationData ) ;
% close the current figure .
pause(0) ;
close( handles.yichuan ) ;
% --------------------------------------------------------------------------
function NextButton_Callback( h )
handles = guidata( h ) ;
% 將鼠標設為等待。
set( handles.yichuan, 'Pointer', 'watch' ) ;
% get the T_SimulationData .
T_SimulationData = getappdata( handles.yichuan, 'T_SimulationData' ) ;
% open the next figure .
if isempty( T_SimulationData )
T_SimulationData = T_youhua( 'Get_DefaultT_SimulationData' ) ;
% save the data .
setappdata( handles.yichuan, 'T_SimulationData', T_SimulationData ) ;
end
% ================================================
% 在這里加上的優化模塊,并且輸出結果。
T_SimulationData = myyouhua( T_SimulationData ) ;
% ================================================
% ================================================
% 在這里加上的計算模塊,并且輸出結果。
T_SimulationData = jisuan( T_SimulationData ) ;
% ================================================
xianshi( T_SimulationData ) ;
% close the current figure .
pause(0) ;
close( handles.yichuan ) ;
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -