ui_gen.m ( File view )

  • By xuhongyanphp 2016-05-19
  • View(s):0
  • Download(s):0
  • Point(s): 1
			function [g,d] = ui_gen(varargin)
% UI_GEN - User interface
% 
tp=[];
cdvs=cdv;
ddvs=ddv;
c_index=1;lc_index=1;
d_index=1;ld_index=1;
cdv_list=cdv;
ddv_list=ddv;

if ~isempty(varargin);
  cdvs=get(varargin{
1
}(varargin{
2
}),'cdvs');
  ddvs=get(varargin{
1
}(varargin{
2
}),'ddvs');
  fig_name=sprintf('Design variables in chromosome: %s\n',...
		   get(varargin{
1
}(varargin{
2
}),'name'));    
  
  for k=1:length(varargin{
1
});
    cdvs_tmp=get(varargin{
1
}(k),'cdvs');
    ddvs_tmp=get(varargin{
1
}(k),'ddvs');
    
    if ~isempty(cdvs_tmp)
      for l=1:length(cdvs_tmp)
	cdv_list(lc_index)=cdvs_tmp(l);
	lc_index=lc_index+1;
      end
    end
    
    if ~isempty(ddvs_tmp)
      for l=1:length(cdvs_tmp)
	ddv_list(ld_index)=ddvs_tmp(l);
	ld_index=ld_index+1;
      end
    end
  
  end
  
  if ~and(isempty(cdvs),isempty(ddvs))
      figure;
      axis off;
      set(gcf,'numbertitle','off');
      set(gcf,'name',fig_name);
      [c_index d_index tp]=redraw(cdvs,ddvs,tp);
  end
  
end

while 1

  sel=selector;
  
  switch sel
    
   case 'c'
    cdv_tmp=cdv_in(cdvs,ddvs,cdv_list,ddv_list);      
    if ~isempty(cdv_tmp)
      cdvs(c_index)=cdv_tmp(1);
      tp=txt_cdv(cdvs(c_index),tp,1);
      if and(c_index==1,~isempty(varargin))
	set(gcf,'numbertitle','off');
	set(gcf,'name',fig_name);
      end
      c_index=c_index+1;
    end
    
   case 'd'
    ddv_tmp=ddv_in(cdvs,ddvs,cdv_list,ddv_list);      
    if ~isempty(ddv_tmp)
      ddvs(d_index)=ddv_tmp;
      tp=txt_ddv(ddvs(d_index),tp,1);
      if and(d_index==1,~isempty(varargin))
	set(gcf,'numbertitle','off');
	set(gcf,'name',fig_name);
      end
      d_index=d_index+1;
    end
   case 'k'
    
    name_del=input('Input the name of the variable to delete: ','s')
    
    ind_delete_c=find(cdvs,name_del);
    ind_delete_d=find(ddvs,name_del);

    if ind_delete_c
      cdvs=del_gen(cdvs,ind_delete_c);
      [c_index d_index tp]=redraw(cdvs,ddvs,tp);

    elseif ind_delete_d
      
      ddvs=del_gen(ddvs,ind_delete_d);
      [c_index d_index tp]=redraw(cdvs,ddvs,tp);

    else
     
      disp('Name does not exist')
      input('Press return to continue')
      
    end
    
   
   case 're'
    [c_index d_index tp]=redraw(cdvs,ddvs,tp);
   case 'ke'
    keyboard
    
   case 'e'
    
    name_mod=input('Name of variable to modify: ','s');
    cdv_edit=find(cdvs,name_mod);
    tp_ind=find_tp(tp,name_mod);
    ddv_edit=find(ddvs,name_mod);
    if cdv_edit
      fig=get(get(tp(tp_ind),'Parent'),'Parent');
      delete(tp(tp_ind));
      clc;
      cdvs(cdv_edit)=set(cdvs(cdv_edit),'name','');
      cdvs(cdv_edit)=cdv_in(cdvs,ddvs,cdv_list,ddv_list);
      
      txt=sprintf('name: %s\nlimits:[%d %d]\nBits: %d', ...
		  get(cdvs(cdv_edit),'name'), get(cdvs(cdv_edit), ...
					       'l_limit'), ...
		  get(cdvs(cdv_edit),'u_limit'), get(cdvs(cdv_edit),'bits'));
      figure(fig);
      tp(tp_ind)=place_txt(tp_ind,txt);
      set(tp(tp_ind),'Tag',get(cdvs(cdv_edit),'name'));
      
    elseif ddv_edit 
      fig=get(get(tp(tp_ind),'Parent'),'Parent');
      delete(tp(tp_ind));
      clc;
      ddvs(ddv_edit)=set(ddvs(ddv_edit),'name','');
      ddvs(ddv_edit)=ddv_in(cdvs,ddvs);
      txt=sprintf('name: %s\nPossible values:\n%s', ...
		  get(ddvs(ddv_edit),'name'), ...
		  num2str(get(ddvs(ddv_edit),'p_val')));
      figure(fig);
      tp(tp_ind)=place_txt(tp_ind,txt);
      set(tp(tp_ind),'Tag',get(ddvs(ddv_edit),'name'));
    else
      disp('Name does not exist')
      input('Press return to continue')
    end
    
   case 'q'
    fp=0;
    if ~isempty(tp)
      for k=1:length(tp)
	fp(k)=get(get(tp(k),'parent'),'parent');
      end
      close(fp)
    end
    break
  end
end
g=cdvs;
d=ddvs;
%==============END MAIN LOOP=================================


function tp = txt_cdv(cdv,tp,close)
if close 

  if ~mod(length(tp),30)
    fp=figure;
    set(fp,'Menubar','none')
    set(fp,'numbertitle','off')
    set(fp,'Name','Design variables')
    axis off;
  end
else 
  figure(gcf)
end
figure(gcf);

for k=1:length(cdv)
  index=mod(length(tp),30)+1;
  txt=sprintf('name: %s\nlimits:[%d %d]\nBits: %d',get(cdv(k),'name'), ...
	      get(cdv(k),'l_limit'),get(cdv(k),'u_limit'), ...
	      get(cdv(k),'bits'));
  tp=[tp place_txt(index,txt)];
  set(tp(end),'Tag',get(cdv(k),'name'));
end

%=============END FUNCTION===================================  
function tp = place_txt(index,txt)
% PLACE_TXT - 
%   
figure(gcf);
pos_x=[-0.1 0.15 0.4 0.65 0.90 1.15];
pos_y=[0.9 0.75 0.6 0.45 0.3 0.15];


if index<=5
  tp=text(pos_x(index),pos_y(1),txt);
elseif and(index>5,index<=10)
  tp=text(pos_x(index-5),pos_y(2),txt);
elseif and(index>10,index<=15)
  tp=text(pos_x(index-10),pos_y(3),txt);
elseif and(index>15,index<=20)
  tp=text(pos_x(index-15),pos_y(4),txt);
elseif and(index>20,index<=25)
  tp=text(pos_x(index-20),pos_y(5),txt);
else and(index>25,index<=30)
  tp=text(pos_x(index-25),pos_y(6),txt);
end

%=============END FUNCTION===================================    

function c = cdv_in(g,d,cdv_list,ddv_list)
% CDV_IN - 
%   

name=namecheck(g,d);
ind_c=find(cdv_list,name);
ind_d=find(ddv_list,name);
if ind_d 
  disp('name exist as discrete design');
  input('press return to continue')
  c=cdv;
  return;
end

if ind_c
  reuse=input('variable exist reuse: ? (y/n)','s');
  if strcmp(reuse,'y')
    c=cdv_list(ind_c);
    return;
  else
    c=cdv;
    return;
  end
end
    
h_lim=0; l_lim=0; tst=0; bit=0;
while h_lim<=l_lim
  if tst
    disp('Limits are not correct')
  end
  l_lim=input('Give low limit:');
  h_lim=input('Give high limit:');
  tst=1;
end
tst=0;
while bit<=0
  if tst
    disp('Wrong number of bits')
  end
  bit=input('give number of bits:');
  tst=1;
end

c=cdv(name,l_lim,h_lim,bit);
%=============END FUN
...
...
(Please download the complete source code to view)
			
...
Expand> <Close

Want complete source code? Download it here

Point(s): 1

Download
0 lines left, continue to read
Sponsored links

File list

Tips: You can preview the content of files by clicking file names^_^
Name Size Date
cdv.m842.00 B28-04-07|18:21
display.m313.00 B28-04-07|18:21
get.m399.00 B28-04-07|18:21
set.m408.00 B28-04-07|18:21
chrom.m1.38 kB28-04-07|18:21
display.m447.00 B28-04-07|18:21
eq.m127.00 B28-04-07|18:21
export.m1.36 kB28-04-07|18:21
find.m305.00 B28-04-07|18:21
ge.m147.00 B28-04-07|18:21
get.m1.08 kB28-04-07|18:21
gt.m138.00 B28-04-07|18:21
impfit.m398.00 B28-04-07|18:21
import.m603.00 B28-04-07|18:21
import_values.m225.00 B28-04-07|18:21
init.m540.00 B28-04-07|18:21
le.m143.00 B28-04-07|18:21
lt.m132.00 B28-04-07|18:21
max.m648.00 B28-04-07|18:21
mean.m365.00 B28-04-07|18:21
median.m357.00 B28-04-07|18:21
min.m626.00 B28-04-07|18:21
nmbr_of_members.m197.00 B28-04-07|18:21
plot.m1.61 kB28-04-07|18:21
plus.m590.00 B28-04-07|18:21
pmga.m214.00 B28-04-07|18:21
print.m2.56 kB28-04-07|18:21
replace.m749.00 B28-04-07|18:21
report.m5.84 kB28-04-07|18:21
set.m1.02 kB28-04-07|18:21
sort.m370.00 B28-04-07|18:21
std.m562.00 B28-04-07|18:21
tagem.m220.00 B28-04-07|18:21
ddv.m1.40 kB28-04-07|18:21
display.m271.00 B28-04-07|18:21
get.m342.00 B28-04-07|18:21
set.m277.00 B28-04-07|18:21
convert.m312.00 B28-04-07|18:21
display.m131.00 B28-04-07|18:21
eq.m303.00 B28-04-07|18:21
find.m286.00 B28-04-07|18:21
gen.m612.00 B28-04-07|18:21
get.m1.11 kB28-04-07|18:21
init.m823.00 B28-04-07|18:21
isempty.m205.00 B28-04-07|18:21
ne.m311.00 B28-04-07|18:21
plus.m1.00 kB28-04-07|18:21
bin2int.m93.00 B28-04-07|18:21
set.m1.09 kB28-04-07|18:21
children.m796.00 B28-04-07|18:21
cload.m2.90 kB28-04-07|18:21
Contents.m2.15 kB28-04-07|18:21
csave.m1.86 kB28-04-07|18:21
load_chrom.m1.12 kB28-04-07|18:21
load_mut.m742.00 B28-04-07|18:21
logbook.m614.00 B28-04-07|18:21
mailme355.35 kB28-04-07|18:21
mailme.m265.00 B28-04-07|18:21
morph.m1.44 kB28-04-07|18:21
mutate.m1.03 kB28-04-07|18:21
parents.m6.60 kB28-04-07|18:21
probmut.m2.10 kB28-04-07|18:21
save_chrom.m1.93 kB28-04-07|18:21
ui_chrom.m4.67 kB28-04-07|18:21
ui_gen.m8.41 kB28-04-07|18:21
ui_mutate.m2.24 kB28-04-07|18:21
private0.00 B03-06-07|15:47
@cdv0.00 B03-06-07|15:47
@chrom0.00 B03-06-07|15:47
@ddv0.00 B03-06-07|15:47
@gen0.00 B03-06-07|15:47
多目标遗传算法工具箱0.00 B03-06-07|15:47
...
Sponsored links

ui_gen.m (121.73 kB)

Need 1 point
Your Point(s)

Your Point isn't enough.

Get point immediately by PayPal

More(Debit card / Credit card / PayPal Credit / Online Banking)

Submit your source codes. Get more point

LOGIN

Don't have an account? Register now
Need any help?
Mail to: support@codeforge.com

切换到中文版?

CodeForge Chinese Version
CodeForge English Version

Where are you going?

^_^"Oops ...

Sorry!This guy is mysterious, its blog hasn't been opened, try another, please!
OK

Warm tip!

CodeForge to FavoriteFavorite by Ctrl+D