[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);
>> surf(rates,dates); %but when I try to add wither of the labels I get a problem?
??? Error using ==> surf at 78
X, Y, Z, and C cannot be complex.
>> surf(rates,dates,rates_header);
??? Error using ==> surf at 78
Z must be a matrix, not a scalar or vector.`
我假设问题是因为date和rates_header仍然是单元格数组?
如何将它们转换为文字?有没有办法直接作为xlsread的一部分来做?
最后在图中我想制作数组中的第一个单元格date和header_header,这是冲浪图的那个轴的名称,其余的数据用于填充轴。
越来越近了
title('Euro Swap Rates');
xlabel( '成熟');
ylabel( '日期');
zlabel('掉期率');
set(gca,'YTick',1:100:length(dates));
set(gca,'YTickLabel',date(1:100:length(dates)));
set(gca,'XTick',0:10:length(rates_header));
set(gca,'XTickLabel',rates_header(0:10:length(rates_header)));
还有两个问题:
答案 0 :(得分:1)
看起来您想要在x轴上设置标签。
您不是通过surf
执行此操作,而是在使用set
之后执行此操作,如下所示:
set(axHandle, 'XTickLabel', xlabels);
这是一个完整的例子:
[x y] = meshgrid(-4:.25:4;);
z = x.^2 + y.^2;
xlab = {'one','two','three','four'};
surf(x,y,z);
set(gca,'XTickLabel', xlab);
您可以使用任何标签,只要它们是字符串并保存到单元格数组中即可。这就是我上面对xlab
所做的。