[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.`
問題は、dates と rates_header がまだセル配列であるためだと思いますか?
それらをテキストに変換するにはどうすればよいですか? xlsread の一部として直接行う方法はありますか?
最後に、プロットで、配列の最初のセルに日付と rate_header を作成します。これは、サーフ プロットのその軸の名前であり、残りのすべてのデータが軸の入力に使用されます。
近くなってる
title('ユーロスワップレート');
xlabel('成熟度');
ylabel('日付');
zlabel('スワップレート');
set(gca, 'YTick', 1:100:長さ(日付));
set(gca, 'YTickLabel', 日付(1:100:長さ(日付)));
set(gca, 'XTick', 0:10:length(rates_header));
set(gca, 'XTickLabel', rates_header(0:10:length(rates_header)));
2 つの質問が残っています。
- xティックを1y、次に10y20y ... 60yにしたいので、残りのすべてのポイントの最初のステップサイズが9y、次に10yになるようにします
- 毎年 1 月 1 日と 6 月 1 日のみ (またはそれらの日付に最も近い営業日) を日付に表示したいと思います。