将CR1000数据文件读入MATLAB _Campbellsci论坛问答

我有一堆来自CR1000记录器的.dat文件,我正试图将它们读入MATLAB。然而,作为MATLAB的新手,我很难让程序处理CSI.dat文件的dd.mm.yyyy和时间格式。关于如何将其编码并将日期和时间列保留为日期和时间,有什么建议吗?提前谢谢。

将CR1000数据文件读入MATLAB
_Campbellsci论坛问答

新对话如下:

我不熟悉MatLab,但您可以使用Loggernet中包含的拆分报告生成软件为数据创建更合适的时间戳集。

祝你好运
岛民

新对话如下:

Matlab对时间戳非常挑剔。这对您解决这个问题没有帮助,但在未来,如果您将我们的时间输出为日期数组(yyyy,doy,hhmm),ML可以轻松处理这种形式。祝您好运。

新对话如下:

我已经有一两个客户向我发送了可以用于Matlab的文件,但我无权分发这些文件。我会联系客户,让他们在论坛上查看:)他们可能有可以分享的东西。

正如IslandMan所提到的,您可以使用Split将日期转换为您需要的任何格式。请参阅关于Date()函数及其格式字符串语法的最新Split帮助。

当做

Dana公司

新对话如下:

JFO中,
你最好的选择是使用“;日期编号“;以及“;日期str”;函数。你的日期格式是什么?有许多预定义的日期字符串格式;日期str”;函数,但您也可以使用“;自由形式“;日期格式说明符。下面是一个读取级别记录器数据的代码示例,但它应该会给您一个想法

这将作为变量C加载到原始csv文件中,日期字符串位于第一个单元格中

C=文本扫描(fid,“%s%f%f%f”,“删除”,“,”);

这一行将字符串格式转换为Matlab日期数字格式

MatDate=日期编号(C{1,1},'mm/dd/yyyy HH:mm:SS PM');

新对话如下:

非常感谢您的回复!

新对话如下:

正如其他人所提到的,使用Split可以自定义数据文件中的日期。

我所做的是使用Split在选择面板中使用edate指令生成一个“串行”日期字段。

Matlab在串行日期方面没有任何问题,然后在Matlab中,您可以使用datetick(“x”、“d-mm-yyyy”)(或任何格式)根据需要在图形上格式化x-axos。适用于日期和时间,没有问题。

新对话如下:

RiverOfNoReturn的方法很好。
但如果你想把时间和分钟分开,你可以试试下面的代码。

%从没有标题的原始数据文件中读取一条数据线。
data=文本扫描(fid1,'%s'%s%s%s%s%s%s%s%s,1,'删除',',');

%提取包括小时和分钟的时间数据。
ccc=数据{,1}{,1];

%以字符串的格式从ccc中提取小时数。
hourString=ccc(13:14);

%将字符串转换为数字。
hourInt=str2num(hourString);

%以字符串的格式从ccc中提取分钟。
分钟字符串=ccc(16:17);

%将字符串转换为数字。
minuteInt=str2num(minuteString);

分享到:

原文链接:,转发请注明来源!
海洋仪器网 仪器使用 将CR1000数据文件读入MATLAB _Campbellsci论坛问答
「将CR1000数据文件读入MATLAB _Campbellsci论坛问答」评论列表

发表评论