1

私は何時間もさまざまなフォーラムを検索してきましたが、Matlab で Excel で自動的に行うことは不可能のようです... uiimport を使用して xls ファイルを 2 つの配列 (? 合計初心者) にインポートしました。軸とその他はプロットしたい値です。

私は180の値を持っています。日付は、2008 年 5 月から現在の 3 月末まで、月に 3 回あります。

使用する

プロット(マイナンバー)

set(gca,'XTickLabel',日付)

2008 年 5 月の日付のみを x 軸に配置します。他のすべての日付はどこに行きましたか?

代わりに

プロット(マイナンバー)

set(gca,'XTick',mynumbers,'XTickLabel',dates)

エラーメッセージ「??? Error using ==> set Values must be monotonically increase.」が表示されます。

助けてください!

4

2 に答える 2

1

他のすべての日付はどこに行きましたか?

最初の質問に対する答えは、MATLAB は x 軸の目盛りの既定の N 個に対応する最初の N 個の文字列のみを使用するということです。

"??? Error using ==> set 値は単調に増加する必要があります。"

エラーは、日付の目盛りを等間隔にする必要があることを示しています。実際のデータ ポイントに対応する日付を使用する代わりに、MATLAB が自動的にグラフに割り当てた x 目盛り値を取得し、テキストに変換してから、次のように日付を x 目盛りラベルとして再割り当てすることができます。

% generate example unevenly spaced date vector
time = [now,now+1,now+25,now+28.5,now+36,now+40,now+51,now+65];
% generate random data points
data = rand(size(time));
% plot time vs data, storing the axes handle in the process
figure;
axH = axes;
plot(axH,time,data)
% get the x-axis tick locations
ticLoc = get(axH,'XTick');
% format tick labels (substitute any date format you wish)
ticLab = cellfun(@(x) datestr(x,'mm/dd'),num2cell(ticLoc),'UniformOutput',false);
% apply tick labels
set(axH,'XTickLabel',ticLab)

MATLAB の組み込み関数datetickも同様に機能します。

ただし、後でズームすると、正確な目盛りラベルが表示されません。datetick2そのため、File Exchange で使用することをお勧めします。

Excel の日付のセル配列を数値配列に変換する際に問題が発生した場合は、次を使用します。

dateNumeric = cell2mat(cellfun(@datenum,dateStrings,'UniformOutput',false));
于 2013-04-02T20:15:46.623 に答える
0

試すset (gca,'XTickLabel',num2str(dates))

于 2013-08-13T22:29:44.763 に答える