diff toolboxes/FullBNT-1.0.7/netlab3.3/demnlab.m @ 0:e9a9cd732c1e tip

first hg version after svn
author wolffd
date Tue, 10 Feb 2015 15:05:51 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolboxes/FullBNT-1.0.7/netlab3.3/demnlab.m	Tue Feb 10 15:05:51 2015 +0000
@@ -0,0 +1,380 @@
+function demnlab(action);
+%DEMNLAB A front-end Graphical User Interface to the demos
+%
+%	Description
+%	This function will start a user interface allowing the user to select
+%	different demonstration functions to view. The demos are divided into
+%	4 groups, with the demo being executed by selecting the desired
+%	option from a pop-up menu.
+%
+%	See also
+%
+
+%	Copyright (c) Ian T Nabney (1996-2001)
+
+% If run without parameters, initialise gui.
+if nargin<1,
+	action='initialise';
+end;
+
+if strcmp(action,'initialise'),
+
+  % Create figure
+  fig = figure( ...
+    'Name', 'Netlab Demos', ...
+    'NumberTitle', 'off', ...
+    'Color', [0.7529 0.7529 0.7529], ...
+    'Visible', 'on');
+  
+  % Create GROUPS
+  % Bottom of demo buttons
+  group1_bot = 0.20;
+  group1_top = 0.75;
+  uicontrol(fig, ...
+    'Style', 'frame', ...
+    'Units', 'normalized', ...
+    'Position', [0.03 group1_bot 0.94 group1_top - group1_bot], ...
+    'BackgroundColor', [0.5 0.5 0.5]);
+
+  % Bottom of help and close buttons
+  group2_bot = 0.04;
+  uicontrol(fig, ...
+    'Style', 'frame', ...
+    'Units', 'normalized', ...
+    'Position', [0.03 group2_bot 0.94 0.12], ...
+    'BackgroundColor', [0.5 0.5 0.5]);
+
+  % Draw title
+  hLogoAxis = axes( ...
+    'Units', 'normalized', ...
+    'Position', [0.05 0.82 0.90 0.14], ...
+    'Box', 'off', ...
+    'XColor', [0 0 0], ...
+    'YColor', [0 0 0], ...
+    'Visible', 'on');
+
+  load netlogo;			% load image and colour map
+  colormap(netcmap(1:3,:));	% change colour map: don't need many entries
+  image(nlogo);			% draw logo
+  axis('image');		% ensures pixels on axis are square
+  axis off;			% turn axes off
+
+  % Create static text
+  uicontrol(fig, ...
+    'Style', 'text', ...
+    'Units', 'normalized', ...
+    'BackgroundColor', [0.5 0.5 0.5], ...
+    'Position', [0.05 group1_top-0.1 0.90 0.08], ...
+    'String', 'Select demo to run:');
+
+  % First row text offset
+  tRow1Offset = 0.14;
+  % Offset between text and button
+  TBoffset = 0.07;
+  % First row button offset
+  bRow1Offset = tRow1Offset+TBoffset;
+  % ONE text
+  uicontrol(fig, ...
+    'Style', 'text', ...
+    'Units', 'normalized', ...
+    'BackgroundColor', [0.5 0.5 0.5], ...
+    'Position', [0.08 group1_top-tRow1Offset 0.36 0.05], ...
+    'String', 'Regression');
+  
+  popup1str(1) = {'Select Option'};
+  popup1str(2) = {'Multi-Layer Perceptron'};
+  popup1str(3) = {'Radial Basis Function'};
+  popup1str(4) = {'Mixture Density Network'};
+  % ONE popup
+  hPop1 = uicontrol(fig, ...
+    'Style','popup', ...
+    'Units','normalized', ...
+    'String', popup1str, ...
+    'Position', [0.08 group1_top-bRow1Offset 0.36 0.08], ...
+    'BackgroundColor', [0.7 0.7 0.7], ...
+    'Callback', 'demnlab popup1');
+
+  % TWO text
+  uicontrol(fig, ...
+    'Style', 'text', ...
+    'Units', 'normalized', ...
+    'BackgroundColor', [0.5 0.5 0.5], ...
+    'Position', [0.56 group1_top-tRow1Offset 0.36 0.05], ...
+    'String', 'Classification');
+  
+  popup2str(1) = popup1str(1);
+  popup2str(2) = {'Generalised Linear Model (2 class)'};
+  popup2str(3) = {'Generalised Linear Model (3 class)'};
+  popup2str(4) = {'Multi-Layer Perceptron'};
+  popup2str(5) = {'K nearest neighbour'};
+  % TWO popup
+  hPop2 = uicontrol(fig, ...
+    'Style','popup', ...
+    'Units','normalized', ...
+    'String', popup2str, ...
+    'Position', [0.56 group1_top-bRow1Offset 0.36 0.08], ...
+    'BackgroundColor', [0.7 0.7 0.7], ...
+    'Callback', 'demnlab popup2');
+  
+  tRow2Offset = 0.30;
+  bRow2Offset = tRow2Offset+TBoffset;
+  % THREE text
+  uicontrol(fig, ...
+    'Style', 'text', ...
+    'Units', 'normalized', ...
+    'BackgroundColor', [0.5 0.5 0.5], ...
+    'Position', [0.08 group1_top - tRow2Offset 0.36 0.05], ...
+    'String', 'Density Modelling and Clustering'); 
+  
+  popup3str(1) = popup1str(1);
+  popup3str(2) = {'Gaussian Mixture (EM training)'};
+  popup3str(3) = {'Gaussian Mixture (spherical)'};
+  popup3str(4) = {'Gaussian Mixture (diagonal)'};
+  popup3str(5) = {'Gaussian Mixture (full)'};
+  popup3str(6) = {'Neuroscale'};
+  popup3str(7) = {'GTM (EM training)'};
+  popup3str(8) = {'GTM (visualisation)'};
+  popup3str(9) = {'K-means clustering'};
+  popup3str(10) = {'Self-Organising Map'};
+  % TWO popup
+  % THREE popup
+  hPop3 = uicontrol(fig, ...
+    'Style','popup', ...
+    'Units','normalized', ...
+    'String', popup3str, ...
+    'Position', [0.08 group1_top - bRow2Offset 0.36 0.08], ...
+    'BackgroundColor', [0.7 0.7 0.7], ...
+    'Callback', 'demnlab popup3');
+  
+  % FOUR text
+  uicontrol(fig, ...
+    'Style', 'text', ...
+    'Units', 'normalized', ...
+    'BackgroundColor', [0.5 0.5 0.5], ...
+    'Position', [0.56 group1_top - tRow2Offset 0.36 0.05], ...
+    'String', 'Bayesian Methods');
+  
+  popup4str(1) = popup1str(1);
+  popup4str(2) = {'Sampling the MLP Prior'};
+  popup4str(3) = {'Evidence Approximation for MLP'};
+  popup4str(4) = {'Evidence Approximation for RBF'};
+  popup4str(5) = {'Evidence Approximation in Classification'};
+  popup4str(6) = {'ARD for MLP'};
+  popup4str(7) = {'Sampling the GP Prior'};
+  popup4str(8) = {'GPs for Regression'};
+  popup4str(9) = {'ARD for GP'};
+  % FOUR popup
+  hPop4 = uicontrol(fig, ...
+    'Style','popup', ...
+    'Units','normalized', ...
+    'String', popup4str, ...
+    'Position', [0.56 group1_top - bRow2Offset 0.36 0.08], ...
+    'BackgroundColor', [0.7 0.7 0.7], ...
+    'Callback', 'demnlab popup4');
+  
+  
+  tRow3Offset = 0.45;
+  bRow3Offset = tRow3Offset+TBoffset;
+  % FIVE text
+  uicontrol(fig, ...
+    'Style', 'text', ...
+    'Units', 'normalized', ...
+    'BackgroundColor', [0.5 0.5 0.5], ...
+    'Position', [0.08 group1_top - tRow3Offset 0.36 0.05], ...
+    'String', 'Optimisation and Visualisation'); 
+  
+  popup5str(1) = popup1str(1);
+  popup5str(2) = {'Algorithm Comparison'};
+  popup5str(3) = {'On-line Gradient Descent'};
+  popup5str(4) = {'Hinton Diagrams'};
+  % FIVE popup
+  hPop5 = uicontrol(fig, ...
+    'Style','popup', ...
+    'Units','normalized', ...
+    'String',popup5str, ...
+    'Position', [0.08 group1_top - bRow3Offset 0.36 0.08], ...
+    'BackgroundColor', [0.7 0.7 0.7], ...
+    'Callback', 'demnlab popup5');
+  
+  % SIX text
+  uicontrol(fig, ...
+    'Style', 'text', ...
+    'Units', 'normalized', ...
+    'BackgroundColor', [0.5 0.5 0.5], ...
+    'Position', [0.56 group1_top - tRow3Offset 0.36 0.05], ...
+    'String', 'Sampling');
+  
+  popup6str(1) = popup1str(1);
+  popup6str(2) = {'Sampling a Gaussian'};
+  popup6str(3) = {'MCMC sampling (Metropolis)'};
+  popup6str(4) = {'Hybrid MC (Gaussian mixture)'};
+  popup6str(5) = {'Hybrid MC for MLP I'};
+  popup6str(6) = {'Hybrid MC for MLP II'};
+  % SIX popup
+  hPop6 = uicontrol(fig, ...
+    'Style','popup', ...
+    'Units','normalized', ...
+    'String', popup6str, ...
+    'Position', [0.56 group1_top - bRow3Offset 0.36 0.08], ...
+    'BackgroundColor', [0.7 0.7 0.7], ...
+    'Callback', 'demnlab popup6');
+  
+  
+  % Create HELP button
+  uicontrol(fig, ...
+    'Units', 'normalized', ...
+    'Position' , [0.05 group2_bot+0.02 0.40 0.08], ...
+    'String', 'Help', ...
+    'Callback', 'demnlab help');
+  
+  % Create CLOSE button
+  uicontrol(fig, ...
+    'Units', 'normalized', ...
+    'Position' , [0.55 group2_bot+0.02 0.40 0.08], ...
+    'String', 'Close', ...
+    'Callback', 'close(gcf)');
+  
+  hndlList=[fig hPop1 hPop2 hPop3 hPop4 hPop5 hPop6];
+  set(fig, 'UserData', hndlList);
+  set(fig, 'HandleVisibility', 'callback');
+  
+elseif strcmp(action, 'popup1'),
+  
+  hndlList=get(gcf,'UserData');
+  hPop = hndlList(2);
+  
+  selected = get(hPop, 'Val');
+  set(hPop, 'Val', [1]);
+  
+  switch selected
+    case 2
+      demmlp1;
+    case 3
+      demrbf1;
+    case 4
+      demmdn1;
+  end;
+  
+elseif strcmp(action,'popup2'),
+  
+  hndlList=get(gcf,'UserData');
+  hPop = hndlList(3);
+  
+  selected = get(hPop, 'Val');
+  set(hPop, 'Val', [1]);
+  
+  switch selected
+    case 2
+      demglm1;
+    case 3
+      demglm2;
+    case 4
+      demmlp2;  
+    case 5
+      demknn1;
+  end
+    
+elseif strcmp(action,'popup3'),
+  
+  hndlList=get(gcf,'UserData');
+  hPop = hndlList(4);
+  
+  selected = get(hPop, 'Val');
+  set(hPop, 'Val', [1]);
+  
+  switch selected
+    case 2
+      demgmm1;
+    case 3
+      demgmm2;
+    case 4
+      demgmm3;
+    case 5
+      demgmm4;
+    case 6
+      demns1;
+    case 7
+      demgtm1;
+    case 8
+      demgtm2;
+    case 9
+      demkmn1;
+    case 10
+      demsom1;
+  end
+  
+elseif strcmp(action,'popup4'),
+  
+  hndlList=get(gcf,'UserData');
+  hPop = hndlList(5);
+  
+  selected = get(hPop, 'Val');
+  set(hPop, 'Val', [1]);
+  
+  switch selected
+    case 2
+      demprior;
+    case 3
+      demev1;
+  case 4
+      demev3;
+  case 5
+      demev2;
+    case 6
+      demard;
+    case 7
+      demprgp;
+    case 8
+      demgp;
+    case 9
+      demgpard;
+  end
+
+elseif strcmp(action,'popup5'),
+  
+  hndlList=get(gcf,'UserData');
+  hPop = hndlList(6);
+  
+  selected = get(hPop, 'Val');
+  set(hPop, 'Val', [1]);
+  
+  switch selected
+    case 2
+      demopt1;
+    case 3
+      demolgd1;
+    case 4
+      demhint;
+  end
+
+  
+elseif strcmp(action,'popup6'),
+  
+  hndlList=get(gcf,'UserData');
+  hPop = hndlList(7);
+  
+  selected = get(hPop, 'Val');
+  set(hPop, 'Val', [1]);
+  
+  switch selected
+    case 2
+      demgauss;
+    case 3
+      demmet1;
+    case 4
+      demhmc1;
+    case 5
+      demhmc2;
+    case 6
+      demhmc3;
+  end
+
+elseif strcmp(action, 'help'),
+  
+  helpStr = {'To run a demo, press the appropriate button.'; ...
+	'Instructions and information will appear in the Matlab';...
+	'command window.'};
+  
+  hHelpDlg = helpdlg(helpStr, 'Netlab Demo Help');	
+
+end;
\ No newline at end of file