Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 从文本文件创建图形,其中X轴为毫秒精度的日期,Y轴为数值_Matlab_Datetime_File Io_Plot - Fatal编程技术网

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
函数?看,我的意思是我可能可以把时间读作“字符串”,然后把它转换成“日期”或“时间”类型?