试图保存datenum

时间:2012-06-21 14:53:36

标签: matlab datetime save

我在Matlab中保存datenum有一个小问题。 我有一个传感器可以实时读取数据。然后我加上计算机收到读数的时间。 我正在构建一个矩阵,第一列时间从函数现在给出,第二列是数据。这是在Matlab中实时完成的。一切都很完美,直到我必须保存数据。

保存数据时,日期会自动舍入。如果我现在绘制我的时间(da变量),我会得到一个增加的功能。 但是,如果我绘制mam(1,:),我会得到一条扁线。 我尝试了很多东西,但结果相同。

您知道吗,如何在Matlab中保存矩阵(ma)以保留日期中的所有小数?

这是一个模拟我问题的小脚本:

s=0;
j=1;
for i=1:10
  s(j)=s(end)+i;
  da(j)=now;
  pause(1);
  j=j+1;
end

ma= [da; s];
dlmwrite('mam.dat',ma);

`

2 个答案:

答案 0 :(得分:0)

您提供的代码运作正常。这可以通过查看ma(1,1)ma(2,1)ma(1,1) - ma(1,2)之间的差异来验证,format('long')不会返回0。

显示数据时发生舍入。到default matlab displays 6 decimal places。命令nSample = 10; s = nan(nSample,1); % pre allocate arrays, much faster for big arrays da = nan(nSample,1); for i = 1:nSample if i==1 s(i) = 1; else s(i) = s(i-1) + i; end da(i) = now; end ma = [da; s]; dlmwrite('mam.dat', ma); 将导致显示所有小数位。

样式注释

你的循环中的逻辑有点奇怪,这里有更多的 matlaby 方式去做你上面写的

{{1}}

答案 1 :(得分:0)

如果要以尽可能多的精度保存数据,请导出到二进制MAT文件而不是文本文件:

save mam.mat ma