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

📄 da_cut.m

📁 王小平《遗传算法——理论、应用与软件实现》随书光盘
💻 M
字号:
%
% da_cut.m
%
% Data cutting and interpolation
%
da_front;
drawnow;
pl=1;
old_sl1_value=1;
[num_points num_var]=size(data);
left_point=1;
right_point=num_points;

text(1)=da_text2(w1,10,400,600,20,'Data Interpolation and Cutting',[1 1 1],[0 0 0.5],'center');

ax1=axes;
set(ax1,...
	'Units','pixels',...
	'Position',[45 150 565 230],...
	'Box','on',...
	'fontsize',10,...
	'Color',[0 0 0],...
	'Visible','on');

%
% Frames
%
box1=uicontrol(w1,...
	'style','frame',...
	'position',[400 10 210 90],...
	'foregroundColor',[1 1 1],...
	'backgroundcolor',[0 0 0.5]);

box2=uicontrol(w1,...
	'style','frame',...
	'position',[10 10 380 90],...
	'foregroundColor',[1 1 1],...
	'backgroundcolor',[0 0 0.5]);

text(2)=da_text2(w1,15,75,370,20,'Pick a variable to examine',[1 1 1],[0 0 1],'center');
text(3)=da_text(w1,15,20,120,20,'Variable number:',[1 1 1],[0 0 0.5]);
text(4)=da_text(w1,140,20,10,20,'1',[1 1 1],[0 0 0.5]);
text(5)=da_text(w1,365,20,20,20,num2str(num_var),[1 1 1],[0 0 0.5]);
text(6)=da_text(w1,320,40,40,20,'',[1 1 1],[0 0 0.5]);

%
% Buttons
%
but(1)=uicontrol(w1,'style','push','position',[410 20 90 30],'string','Assign Right','callback',[
	'[right_point L]=ginput(1);',...
	'right_point=ceil(right_point);',...
	'cla;',...
	'axes(ax1);',...
	'stairs(data(:,pl));',...
	'set(ax1,''fontsize'',10);',...
	'a=line([right_point right_point],get(ax1,''ylim''));',...
	'set(a,''color'',[1 0 0]);',...
	'a=line([left_point left_point],get(ax1,''ylim''));',...
	'set(a,''color'',[1 0 0]);']);

but(2)=uicontrol(w1,'style','push','position',[410 60 90 30],'string','Assign Left','callback',[
	'[left_point L]=ginput(1);',...
	'left_point=ceil(left_point);',...
	'cla;',...
	'axes(ax1);',...
	'stairs(data(:,pl));',...
	'set(ax1,''fontsize'',10);',...
	'a=line([right_point right_point],get(ax1,''ylim''));',...
	'set(a,''color'',[1 0 0]);',...
	'a=line([left_point left_point],get(ax1,''ylim''));',...
	'set(a,''color'',[1 0 0]);']);



but(3)=uicontrol(w1,'style','push','position',[510 20 90 30],'string','Interpolate','callback',[
	'sp=min([left_point right_point]);',...
	'ep=max([left_point right_point]);',...
	'left_value=data(sp,pl);',...
	'right_value=data(ep,pl);',...
	'gr=(left_value-right_value)/(ep-sp);',...
	'for i=1:ep-sp;',...
		'data(sp+i,pl)=left_value-((i-1)*gr);',...
	'end;',...
		'[num_points num_var]=size(data);',...
	'left_point=1;',...
	'right_point=num_points;',...
	'cla;',...
	'axes(ax1);',...
	'stairs(data(:,pl));',...
	'set(ax1,''fontsize'',10);']);

but(4)=uicontrol(w1,'style','push','position',[510 60 90 30],'string','Cut data','callback',[
	'data=[data(1:min([left_point right_point]),:) ; data(max([left_point right_point]):num_points,:)];',...
	'[num_points num_var]=size(data);',...
	'left_point=1;',...
	'right_point=num_points;',...
	'cla;',...
	'axes(ax1);',...
	'stairs(data(:,pl));',...
	'set(ax1,''fontsize'',10);']);

%
% Slider
%
sl1=uicontrol(w1,'style','slider','position',[160 20 200 20],'min',1,'max',num_var,'value',1,'callback',[
	'pl=ceil(get(sl1,''Value''));',...
	'if pl ~= old_sl1_value;',...
		'old_sl1_value=pl;',...
		'set(text(6),''string'',num2str(pl));',...
		'axes(ax1);',...
		'stairs(data(:,pl));',...
		'set(ax1,''fontsize'',10);',...
	'end;']);

%
% Plot the current variable
% 
set(text(6),'string',num2str(pl));
axes(ax1);
stairs(data(:,pl));
set(ax1,'fontsize',10);

⌨️ 快捷键说明

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