title: Creating Surf() with Labels
body: <pre><code>[ndata, text, alldata] = xlsread('Euro swap rates.xlsx',3);
  %(although created from text dates is still a cell array?) 
  dates=text(:,1);  
  %(Same problem here)
  rates_header=text(1,:);  
  rates=ndata;
  surf(rates);
  colormap(jet);  
  
  &gt;&gt; surf(rates,dates); %but when I try to add wither of the labels I get a problem?
  ??? Error using ==&gt; surf at 78
  X, Y, Z, and C cannot be complex.
  
  &gt;&gt; surf(rates,dates,rates_header);
  ??? Error using ==&gt; surf at 78
  Z must be a matrix, not a scalar or vector.`
  </code></pre>
  
  <p>I'm assuming the problem is because dates and rates_header are still cell arrays?</p>
  
  <p>How can I convert them to text? Is there a way to do it directly as part of xlsread?</p>
  
  <p>Lastly on the plot I would like to make the first cell in the arrays dates and rates_header, the name for that axis of the surf plot with all the rest of the data being used to populate the axis.</p>
  
  <p>getting closer</p>
  
  <blockquote>
    <blockquote>
      <p>title('Euro Swap Rates');</p>
      
      <p>xlabel('Maturity');</p>
      
      <p>ylabel('Date');</p>
      
      <p>zlabel('Swap Rate');</p>
      
      <p>set(gca, 'YTick', 1:100:length(dates));</p>
      
      <p>set(gca, 'YTickLabel', dates(1:100:length(dates))); </p>
      
      <p>set(gca, 'XTick', 0:10:length(rates_header)); </p>
      
      <p>set(gca, 'XTickLabel', rates_header(0:10:length(rates_header)));</p>
    </blockquote>
  </blockquote>
  
  <p>Two questions remain: </p>
  
  <ol>
  <li>I would like the x Tick to be 1y then 10y20y...60y So that the first step size is 9y then 10y for all remaining points </li>
  <li>I would like the dates to show the 1st of Jan and ist of June each year only (or the closest working days to those dates). </li>
  </ol>