我正在尝试绘制来自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数据吗?谢谢!
由于位置而删除了传感器数据
答案 0 :(得分:2)
这似乎不是答案......
当我复制这些行并将它们保存到文件(sensor.csv
)时,然后执行M = csvread('sensor.csv', 1, 0);
(就像你一样),Matlab为M创建一个“敏感”数组,其尺寸为[30] ]
现在,当我尝试将其打印出来时,它似乎只在第一列中有一个值 - 因为时间戳比其他值大得多。因此,似乎好像有全部为零。实际上,当您打印矩阵M
时,它会打印出“全局比例因子”1E8。
如果您不打印第1列(例如M(:, 2:7)
),事情似乎会更合理。通过给出的示例,您可以获得XYZ中的加速度以及滚动/俯仰/偏航。一切都很好看。
你被Matlab的缩放所欺骗。你的代码很好。现在,当您获取传感器数据时,我们知道您的iPod在哪里。隔壁有墨西哥烤架一定很好!?