在Octave中读取CSV的问题

时间:2015-09-03 03:22:22

标签: matlab csv octave

我有.csv文件,我无法在Octave上阅读。在R上我只使用下面的命令,一切都正常:

myData <- read.csv("myData.csv", stringsAsFactors = FALSE)

然而,当我去Octave时,使用以下命令没有正确执行:

myData = csvread('myData.csv',1,0);

当我用记事本打开文件时,数据如下所示。请注意,没有逗号将最后一个列名称(即Column3)与第一个值(即Value1)分开,并且第一行的最后一个值(即Value3)和第二行的第一个值发生相同的事情(即Value4)

Column1,Column2,Column3Value1,Value2,Value3Value4,Value5,Value6

Column1用于日期值(格式为yyyy-mm-dd hh:mm:ss),我不知道这是否与问题有关。

2 个答案:

答案 0 :(得分:3)

亚历克斯的答案已经解释了为什么csvread不适合你的情况。该函数只读取数字数据并返回一个数组。由于您的字段都是字符串,因此您需要将csv文件读入单元格数组。

该功能名为csv2cell,是io package的一部分。

作为单独的注释,如果您计划对这些日期进行操作,您可能希望将这些日期转换为字符串,转换为序列日期编号。这将允许您将日期放在一个数字数组中,这将允许更快的操作和减少内存使用。此外,financial包具有许多处理日期的功能。

答案 1 :(得分:1)

csvread仅读取数字数据,因此不幸的是,日期不符合条件。

在Octave中,您可能需要查看dataframe包。在Matlab中,你会readtable

否则,您可以使用更多原始函数,例如textscan