3

我想知道是否可以一次对结构的所有字段执行操作?

我的场景:

我有来自眼动仪设备的数据。它存储在 structData中,并具有以下字段:

Data.positionX
Data.positionY
Data.velocity
Data.acceleration

每个字段都包含一个整数向量。假设我想从我的数据流中删除样本号 10。我必须执行以下操作:

Data.positionX(10) = [];
Data.positionY(10) = [];
Data.velocity(10) = [];
Data.acceleration(10) = [];

我将如何更有效地做到这一点?

4

2 回答 2

3

是的,使用动态字段名称

fields = fieldnames(Data);
for i=1:length(fields)
   field  = fields{i};
   Data.(field)(10) = [];
end
于 2013-05-14T20:28:06.567 回答
0

如果您的数据足够简单,则可能值得切换到直接索引数据而不是其内容的结构

Data(10).positionX
Data(10).positionY
...

那么它会很简单

Data(10)=[]

或者,如果您有一堆要存储在一起的向量,最好将它们存储在矩阵中:

M = [positionX positionY] %And so on, possibly transposed

那么它会很简单:

M(10,:)=[];
于 2013-05-15T12:05:44.007 回答