我想知道是否可以立即对结构的所有字段执行操作?
我的情景:
我有来自眼动仪设备的数据。它存储在结构Data
中,并包含以下字段:
Data.positionX
Data.positionY
Data.velocity
Data.acceleration
每个字段都包含一个整数向量。假设我想从我的数据流中删除样本号10。我必须做以下事情:
Data.positionX(10) = [];
Data.positionY(10) = [];
Data.velocity(10) = [];
Data.acceleration(10) = [];
我如何更有效地做到这一点?
答案 0 :(得分:3)
是的,请使用dynamic field names。
fields = fieldnames(Data);
for i=1:length(fields)
field = fields{i};
Data.(field)(10) = [];
end
答案 1 :(得分:0)
如果您的数据足够简单,可能需要切换到直接索引数据而不是内容的结构
Data(10).positionX
Data(10).positionY
...
那么它就像
一样简单 Data(10)=[]
或者,如果你想要存储一堆矢量,你可能最好将它们存储在一个矩阵中:
M = [positionX positionY] %And so on, possibly transposed
然后就会这么简单:
M(10,:)=[];