Matlab 从文本文件创建图形,其中X轴为毫秒精度的日期,Y轴为数值
我有这样的文本文件:Matlab 从文本文件创建图形,其中X轴为毫秒精度的日期,Y轴为数值,matlab,datetime,file-io,plot,Matlab,Datetime,File Io,Plot,我有这样的文本文件: 10:00:15:956 0,0155260005803643 10:00:21:968 0,0155280030632315 10:00:21:968 0,0155270018379389 10:00:21:968 0,0155260006126463 10:00:22:069 0,0155239981620611 10:00:22:090 0,0155249993873537 第一列是毫秒精度的时间,第二列是值。 我需要画一张图,其中X轴是时间,Y轴是值 我应该使用
10:00:15:956 0,0155260005803643
10:00:21:968 0,0155280030632315
10:00:21:968 0,0155270018379389
10:00:21:968 0,0155260006126463
10:00:22:069 0,0155239981620611
10:00:22:090 0,0155249993873537
第一列是毫秒精度的时间,第二列是值。
我需要画一张图,其中X轴是时间,Y轴是值
- 我应该使用什么函数读取文件?dlmread、文本扫描、导入数据
- 如何强制matlab识别“时间”?我可以以任何需要的格式(10:00:22:090或10.00.22.090或其他任何格式)写入时间,但我需要matlab来正确理解和处理时间标签。例如,10:00:22:090和10:00:23:090之间的差异是1秒,并且X轴上的这些标签之间应该使用该间隔。我希望看到X轴上的“时间”,我不希望将时间转换为一些“不可读”的int值或类似值(例如,从10.00.00开始经过的毫秒数)
datatics
。注意,我有一个快速修复方法来处理第二列中的逗号。也许你不需要它
f = fopen('foo.txt');
data = textscan(f, '%f:%f:%f:%f %f,%f');
fclose(f);
% hh:min:sec:millisec
secvec = [60*60 60 1 1e-3];
x = [data{1:4}] * secvec';
flvec = [1 1e-16];
y = [data{5:6}] * flvec';
xindays = x / (24*60*60);
plot(xindays, y, 'x');
datetick('x', 'HH:MM:SS');
谢谢,我正在尝试你的建议,明天会让你知道它是如何工作的谢谢,我接受你的回答!但我有一个问题。为什么你要把“时间”转换成天,做很多计算?matlab能自动处理吗?可能使用
datestr
函数?看,我的意思是我可能可以把时间读作“字符串”,然后把它转换成“日期”或“时间”类型?