CSV导入但不读取除第一列以外的任何内容

时间:2013-08-14 19:45:15

标签: matlab csv

我正在尝试绘制来自Ipod Touch的传感器数据应用程序的数据(它可以捕获加速度计,陀螺仪和其他传感器数据)。它存储此数据的方式是CSV,其中第一行是变量名称的标题,然后是以下行是数据。

据我所知,matlabs csvread()函数不允许使用混合类型的csv文件,因此当我导入i时,通过键入

来导入除第一行以外的所有内容
M = csvread(testfile, 1, 0)

的印象是,这将导入除第一行之外的所有列和所有行。

但是当我尝试用

打印矩阵的一部分时
M(1:5,1:5)

在每一行和每列中显示零,除了第一列反复显示第一行第一列值。我尝试将其更改为M(1:10,1:10)和M(1:60,1:42)(CSV中只有42个列)它不会改变任何内容。整个CSV是2196行(包括标题行)。

我是matlab的初学者但是从我阅读的文档中我不明白为什么这不起作用。我可以获得一些帮助导入和绘制CSV数据吗?谢谢!

由于位置而删除了传感器数据

1 个答案:

答案 0 :(得分:2)

这似乎不是答案......

当我复制这些行并将它们保存到文件(sensor.csv)时,然后执行M = csvread('sensor.csv', 1, 0);(就像你一样),Matlab为M创建一个“敏感”数组,其尺寸为[30] ]

现在,当我尝试将其打印出来时,它似乎只在第一列中有一个值 - 因为时间戳比其他值大得多。因此,似乎好像有全部为零。实际上,当您打印矩阵M时,它会打印出“全局比例因子”1E8。

如果您不打印第1列(例如M(:, 2:7)),事情似乎会更合理。通过给出的示例,您可以获得XYZ中的加速度以及滚动/俯仰/偏航。一切都很好看。

你被Matlab的缩放所欺骗。你的代码很好。现在,当您获取传感器数据时,我们知道您的iPod在哪里。隔壁有墨西哥烤架一定很好!?