Matlab / Octave-解析和绘制日期字符串与整数的关系

问题描述 投票:0回答:1

我有一个数据文件,第一列为日期字符串,第二列为整数:

"2020/02/29" 1
"2020/03/03" 2
"2020/03/04" 6

我想解析此文件,并在x轴上绘制日期,在y轴上绘制整数。我最近的失败尝试是:

file_name = "data.dat";
fid = fopen(file_name, 'rt');
raw_data = textscan(fid, "%s %d");
fclose(fid);

graphics_toolkit('gnuplot');
plot(raw_data(:, 1), raw_data(:, 2));

图形为空,没有数据可显示。如何正确绘制此类数据?似乎textscan的输出对于绘制来说有点笨拙。

matlab plot octave
1个回答
0
投票

您无法绘制字符串,必须先将日期字符串转换为日期数字。使用cellfun有效执行此操作

x=cellfun(@(d) datenum(regexprep(d,'"',''),'YYYY/MM/DD'), raw_data{1});
y=raw_data{2};
plot(x,y)
© www.soinside.com 2019 - 2024. All rights reserved.