diff m-toolbox/classes/@aoplotter/makeAxisLabel.m @ 0:f0afece42f48

Import.
author Daniele Nicolodi <nicolodi@science.unitn.it>
date Wed, 23 Nov 2011 19:22:13 +0100
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/m-toolbox/classes/@aoplotter/makeAxisLabel.m	Wed Nov 23 19:22:13 2011 +0100
@@ -0,0 +1,94 @@
+% MAKEAXISLABEL makes an axis label from the given ao
+%
+% CALL
+%         [xlbl, ylbl, zlbl] = makeAxisLabel(a)
+%
+% M Hewitson 10-12-10
+%
+% $Id: makeAxisLabel.m,v 1.1 2010/12/12 08:29:00 hewitson Exp $
+%
+function [xlbl, ylbl, zlbl] = makeAxisLabel(d)
+  
+  xlbl = '';
+  ylbl = '';
+  zlbl = '';
+  yunits = char(d.yunits);
+  switch class(d.data)
+    case 'tsdata'
+      xunits = char(d.xunits);
+      xlbl = sprintf('Time %s', xunits);
+      ylbl = sprintf('Amplitude %s', yunits);
+    case 'fsdata'
+      xunits = char(d.xunits);
+      xlbl = sprintf('Frequency %s', xunits);
+      ylbl = sprintf('Amplitude %s', yunits);
+    case 'xydata'
+      xunits = char(d.xunits);
+      xlbl = sprintf('X-Value %s', xunits);
+      ylbl = sprintf('Y-Value %s', yunits);
+    case 'cdata'
+      xlbl = 'Sample Number';
+      ylbl = sprintf('Value %s', yunits);
+    case 'xyzdata'
+      zunits = char(d.zunits);
+      xlbl = sprintf('x-value %s', yunits);
+      ylbl = sprintf('y-value %s', yunits);
+      zlbl = sprintf('Value %s', zunits);
+    otherwise
+      error('unknown ao data type');
+  end
+  
+  xlbl = fixlabel(xlbl);
+  ylbl = fixlabel(ylbl);
+  zlbl = fixlabel(zlbl);
+  
+end
+
+function ss = fixlabel(ss)
+  
+  MAX_LENGTH = 50;
+  wasCell = true;
+  if ~iscell(ss)
+    ss = {ss};
+    wasCell = false;
+  end
+  
+  for kk = 1:numel(ss)
+    s = ss{kk};
+    if ~isempty(s)
+      % Replace all ^(...) with ^{...}
+      jj = 1;
+      while jj < numel(s)
+        if strcmp(s(jj:jj+1), '^(')
+          % find next )
+          for k = 1:numel(s)-jj+1
+            if s(jj+k) == ')'
+              s(jj+1) = '{';
+              s(jj+k) = '}';
+              break;
+            end
+          end
+        end
+        jj = jj + 1;
+      end
+      % Replace all .^ with ^
+      s = strrep(s, '.^', '^');
+      
+      % reduce size
+      if length(s) > MAX_LENGTH
+        addStr = '...';
+      else
+        addStr = '';
+      end
+      ssize = min(MAX_LENGTH, length(s));
+      s = [s(1:ssize) addStr];
+    end
+    ss(kk) = {s};
+  end
+  
+  
+  if ~wasCell
+    ss = ss{1};
+  end
+  
+end