我正在编写一个管理眼动仪数据的解决方案。我目前将数据保存在N x 5矩阵中,其中包含以下列:
X Position, Y Position, timestamp, Velocity, Acceleration
每行代表一个来自眼动仪的单个样本(以1000Hz运行)。
目前,我以矩阵的形式访问数据 - 例如如果我想访问样本#600的速度,我使用'dataStream(600,4)'。
这很好,但我更喜欢我的代码更具可读性。 '4'可能令人困惑;像dataStream.velocity(600)这样的东西是理想的。我知道这将是STRUCT的简单使用。但是,在某些情况下我需要复制整个样本(即我矩阵的一行中的所有列)。据我了解,这在STRUCT对象中不容易实现,因为每个STRUCT子标题中的各种数组都不是内在链接的。我必须(我认为)分别复制每个元素,例如,如果我想复制样本#100,我相信我需要复制dataStream.xPos(100),dataStream.yPos(100),dataStream.timestamp(100) )等等。
STRUCTs的管理方面是否有一些我缺少的东西,或者我最好省去麻烦并坚持使用矩阵方法?
答案 0 :(得分:0)
如果只是为了提高可读性,我不会使用结构,而是使用一种非常简单的方法,为数据矩阵的不同列定义变量。例如,见:
xPosition = 1;
yPosition = 2;
timestamp = 3;
Velocity = 4;
Acceleration = 5;
使用这些变量,您可以编写非常有意义的查询,例如,您可以编写dataStream(600,1)
而不是:{/ p>
dataStream(600, xPosition)
请注意,您还可以定义更复杂的查询,例如
position = [1 2];
wholeSample = 1:5;
一次查询多个列。
答案 1 :(得分:0)
您可以轻松复制struct
s = struct(another_struct);
在性能方面,struct会比matrix慢。使用可读常量替换@ H.Muster建议的数字索引。