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

📄 minputs.m

📁 王小平《遗传算法——理论、应用与软件实现》随书光盘
💻 M
字号:
%
% minputs.m
%
% Display the alternative data selection
% screen.
%
% This form of data selection is only allowed
% when there are less than 18 variables
% in total
%
sub_main=figure('Number','Off',...
	'Name','Data selection',...
	'Menubar','None',...
	'Resize','off',...
	'Units','Pixels',...
	'Position',[2 2 636 455]);

[D L]=size(data);
include_var=ones(1,L);
output_var=zeros(1,L);
input_var=ones(1,L);
time_var=zeros(1,L);
name_var=zeros(6,L);
for i=1:1:L;
	name=['var ',num2str(i),' '];
	name_var(i,1:1:6)=name(1:1:6);
end

%
% Print titles
%
text=uicontrol(sub_main,...
	'style','text',...
	'position',[80 400 50 15],...
	'string','Include',...
	'foregroundcolor',[1 1 1],...
	'backgroundcolor',[0 0 1]);

text=uicontrol(sub_main,...
	'style','text',...
	'position',[140 400 50 15],...
	'string','Output',...
	'foregroundcolor',[1 1 1],...
	'backgroundcolor',[0 0 1]);

text=uicontrol(sub_main,...
	'style','text',...
	'position',[200 400 50 15],...
	'string','Input',...
	'backgroundcolor',[0 0 1],...
	'foregroundcolor',[1 1 1]);

text=uicontrol(sub_main,...
	'style','text',...
	'position',[260 400 50 15],...
	'string','Time',...
	'backgroundcolor',[0 0 1],...
	'foregroundcolor',[1 1 1]);

%
% Starting at the top of the screen, work down
% and print check boxes
%
% work down in reasonable pixel sizes
%

p=370;
if L < 8
	st=35;
else
	st=round(340/L);
end

for i = 1 : 1 : L
	%
	% Variable number
	%
	text=uicontrol(sub_main,...
		'style','text',...
		'position',[10 p 80 15],...
		'string',['Variable ' num2str(i)],...
		'foregroundcolor',[1 1 1],...
		'backgroundcolor',[0 0 0]);

	name_box(i,1)=uicontrol(sub_main,...
		'Style','Edit',...
		'Position',[340 p 60 15],...
		'String',name_var(i,:),...
		'ForegroundColor',[1 1 1],...
		'BackgroundColor',[0 0 1]);
	%
	% Include box
	%
	but(i,1)=uicontrol(sub_main,...
		'style','radio',...
		'position',[100 p 15 15],...
		'foregroundcolor',[1 1 1],...
		'backgroundcolor',[0 0 0],...
		'callback',[
			['if get(but(' num2str(i) ',1),''value'') == 0;'],...
				['set(but(' num2str(i) ',2),''enable'',''off'');'],...
				['set(but(' num2str(i) ',3),''enable'',''off'');'],...
				['set(but(' num2str(i) ',4),''enable'',''off'');'],...
				['set(but(' num2str(i) ',2),''value'',0);'],...
				['set(but(' num2str(i) ',3),''value'',0);'],...
				['set(but(' num2str(i) ',4),''value'',0);'],...
				['include_var(' num2str(i) ')=0;'],...
			'else;',...
				['set(but(' num2str(i) ',2),''enable'',''on'');'],...
				['set(but(' num2str(i) ',3),''enable'',''on'');'],...
				['set(but(' num2str(i) ',4),''enable'',''on'');'],...
				['set(but(' num2str(i) ',3),''value'',abs(output_var(' num2str(i) ')-1));'],...
				['set(but(' num2str(i) ',2),''value'',output_var(' num2str(i) '));'],...
				['set(but(' num2str(i) ',4),''value'',output_var(' num2str(i) '));'],...
				['include_var(' num2str(i) ')=1;'],...
			'end;']);

	%
	% Output box
	%
	but(i,2)=uicontrol(sub_main,...
		'style','radio',...
		'position',[160 p 15 15],...
		'foregroundcolor',[1 1 1],...
		'backgroundcolor',[0 0 0],...
		'callback',[
			['output_var(' num2str(i) ')=1;      '],...
			['input_var(' num2str(i) ')=0;      '],...
			['time_var(' num2str(i) ')=0;      '],...
			['set(but(' num2str(i) ',3),''value'',0);'],...
			['set(but(' num2str(i) ',2),''value'',1);'],...
			['set(but(' num2str(i) ',4),''value'',0);']]);
	%
	% Input box
	%
	but(i,3)=uicontrol(sub_main,...
		'style','radio',...
		'position',[220 p 15 15],...
		'foregroundcolor',[1 1 1],...
		'backgroundcolor',[0 0 0],...
		'callback',[
			['input_var(' num2str(i) ')=1;      '],...
			['output_var(' num2str(i) ') = 0;      '],...
			['time_var(' num2str(i) ') = 0;      '],...
			['set(but(' num2str(i) ',2),''value'',0);'],...
			['set(but(' num2str(i) ',3),''value'',1);'],...
			['set(but(' num2str(i) ',4),''value'',0);']]);

	%
	% Input box
	%
	but(i,4)=uicontrol(sub_main,...
		'style','radio',...
		'position',[280 p 15 15],...
		'foregroundcolor',[1 1 1],...
		'backgroundcolor',[0 0 0],...
		'callback',[
			['input_var(' num2str(i) ')=0;      '],...
			['output_var(' num2str(i) ') = 0;      '],...
			['time_var(' num2str(i) ') = 1;      '],...
			['set(but(' num2str(i) ',2),''value'',0);'],...
			['set(but(' num2str(i) ',3),''value'',0);'],...
			['set(but(' num2str(i) ',4),''value'',1);']]);


	%
	% Set up the buttons accordingly
	%
	set(but(i,1),'value',include_var(i));

	if output_var(i) == 1
		set(but(i,2),'value',1);
		set(but(i,3),'value',0);
	else
		set(but(i,2),'value',0);
		set(but(i,3),'value',1);
	end

	if include_var(i) == 1
		set(but(i,2),'enable','on');
		set(but(i,3),'enable','on');
	else
		set(but(i,2),'enable','off');
		set(but(i,3),'enable','off');
		set(but(i,2),'value',0);
		set(but(i,3),'value',0);
	end
	p=p-st;
end

%
% Include everything button
%
but1=uicontrol(sub_main,...
	'style','push',...
	'position',[450 250 150 30],...
	'string','Include Everything',...
	'callback',[
		'include_var=ones(1,L);',...
		'for i = 1 : L;',...
			'set(but(i,2),''value'',output_var(i));',...
			'set(but(i,3),''value'',abs(output_var(i)-1));',...
			'set(but(i,1),''value'',1);',...
			'set(but(i,2),''enable'',''on'');',...
			'set(but(i,3),''enable'',''on'');',...
			'set(but(i,4),''enable'',''on'');',...
		'end;']);

%
% All inputs
%
but2=uicontrol(sub_main,...
	'style','push',...
	'position',[450 200 150 30],...
	'string','All inputs',...
	'callback',[
		'output_var=zeros(1,L);',...
		'for i = 1 : L;',...
			'if include_var(i)==1;',...
				'set(but(i,2),''value'',0);',...
				'set(but(i,3),''value'',1);',...
				'set(but(i,4),''value'',0);',...
			'end;',...
		'end;']);

but3=uicontrol(sub_main,...
	'style','push',...
	'position',[450 150 150 30],...
	'string','Done',...
	'callback',['for i=1:1:L;',...
			'name=get(name_box(i,1),''String'');',...
			'name_size=size(name,2);',...
			'if name_size>6;',...
				'name_size=6;',...
			'end;',...
			'name_var(i,1:1:6)=[''      ''];',...
			'name_var(i,1:1:name_size)=name(1:1:name_size);',...
		'end;',...
		'if sum(time_var)==1;',...
			'for i=1:1:L;',...
			'if include_var(i)==0;',...
				'input_var(i)=0;',...
				'output_var(i)=0;',...
			'end;',...
			'end;',...
			'if sum(output_var)==1;',...
				'if sum(input_var)>9;',...
					'dialog(''style'',''error'',''replace'',''on'',''resize'',''off'',''name'',''Error'',''Textstring'',e1);',...
				'else;',...
					'close(sub_main);',...
					'miden_ch;',...
				'end;',...
			'else;',...
				'dialog(''style'',''error'',''replace'',''on'',''resize'',''off'',''name'',''Error'',''Textstring'',e1);',...
			'end;',...
		'else;',...
				'dialog(''style'',''error'',''replace'',''on'',''resize'',''off'',''name'',''Error'',''Textstring'',e1);',...
		'end;']);

e1=['                                               '
    '                       Error                   '
    '                                               '
    '  Only one output and time variable may be     '
    '  selected and a maximum of nine inputs.       '
    '                                               '];

⌨️ 快捷键说明

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