[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.`
我假设问题是因为日期和rates_header 仍然是单元格数组?
如何将它们转换为文本?有没有办法直接作为 xlsread 的一部分?
最后在绘图上,我想创建数组日期和rates_header 中的第一个单元格,即冲浪图的该轴的名称,以及用于填充轴的所有其余数据。
越来越近
title('欧元掉期利率');
xlabel('成熟度');
ylabel('日期');
zlabel('交换率');
设置(gca,'YTick',1:100:长度(日期));
设置(gca,'YTickLabel',日期(1:100:长度(日期)));
设置(gca,'XTick',0:10:长度(rates_header));
设置(gca,'XTickLabel',rates_header(0:10:长度(rates_header)));
剩下两个问题:
- 我希望 x Tick 是 1y 然后 10y20y...60y 所以第一步大小是 9y 然后 10y 对于所有剩余的点
- 我希望日期仅显示每年 1 月 1 日和 6 月上旬(或最接近这些日期的工作日)。