Matlab 正在尝试保存datenum

Matlab 正在尝试保存datenum,matlab,datetime,save,Matlab,Datetime,Save,我在Matlab中保存datenum时遇到了一个小问题。 我有一个传感器,可以实时读取数据。然后我加上电脑收到读数的时间。 我正在构造一个矩阵,第一列时间由函数现在给出,第二列是数据。这是在Matlab中实时完成的。在我必须保存数据之前,一切正常 保存数据时,日期将自动四舍五入。如果我现在绘制时间da变量,我将得到一个增加的函数。 然而,如果我画mam1,:,我会得到一条平线。 我试过很多东西,但结果都一样 你们知道吗,我怎样才能在Matlab中保存矩阵ma,以这样的方式保存所有从日期开始的小数

我在Matlab中保存datenum时遇到了一个小问题。 我有一个传感器,可以实时读取数据。然后我加上电脑收到读数的时间。 我正在构造一个矩阵,第一列时间由函数现在给出,第二列是数据。这是在Matlab中实时完成的。在我必须保存数据之前,一切正常

保存数据时,日期将自动四舍五入。如果我现在绘制时间da变量,我将得到一个增加的函数。 然而,如果我画mam1,:,我会得到一条平线。 我试过很多东西,但结果都一样

你们知道吗,我怎样才能在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);

`您提供的代码运行良好。这可以通过查看ma1,1和ma2,1之间的差异来验证,ma1,1-ma1,2不返回0

显示数据时,将进行舍入。通过命令格式“long”将显示所有小数位

样式说明:

循环中的逻辑有点奇怪,这里有一种更为复杂的方法来完成上面所写的内容

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);

如果要以变量中存储的精度保存数据,请导出为二进制MAT文件,而不是文本文件:

save mam.mat ma

运行脚本时,我看不到变量舍入。如果您明确设置精度,例如dlmwrite'mam.dat',ma',precision',16,它是否仍然存在?非常感谢您对precision的建议,它可以按照我的要求工作。很抱歉我的回复太晚,我在等待电子邮件确认答案。亲爱的Slayton,感谢您提出改进代码和使用格式的建议。我仍在努力改进matlabyDear Amro,感谢您的建议,所有解决方案都有效,再次,我为我的迟到表示抱歉,我已等待电子邮件确认答案。再次感谢大家提出的有益建议。