0

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

我知道 matlabs csvread() 函数不允许混合类型的 csv 文件,所以当我导入时,我尝试通过键入导入除第一行以外的所有内容

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 数据方面获得一些帮助吗?谢谢!

因位置原因移除传感器数据

4

1 回答 1

2

这似乎是一个没有答案的...

sensor.csv当我复制这些行并将它们保存到一个文件M = csvread('sensor.csv', 1, 0);

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

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

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

于 2013-08-14T20:22:25.363 回答