同步存储在结构中的时间表
Synchronize timetables stored in a structure
我将来自不同数据记录器的数据动态存储在时间表中,嵌套在结构 DATA
中,例如 DATA.Motor
(带有电机数据的时间表),DATA.Actuators
(带有执行器的时间表数据)等等。
我的objective是要有一个同步和合并这些时间表的功能,这样我就可以使用一个大时间表。
我正在尝试使用 synchronize
合并和同步这些时间表:
fields = fieldnames(DATA);
TT = synchronize(DATA.(fields{1:end}));
但出现以下错误:
Expected one output from a curly brace or dot indexing expression, but there were 3 results.
这让我很困惑,因为 DATA.(fields{1})
return DATA
结构的第一个字段名称的时间表。
非常感谢任何关于如何解决这个问题的想法。
这里的问题是 fields{1:end}
正在返回一个“逗号分隔列表”,并且您不能将其中一个用作结构点索引表达式。 IE。就好像您尝试了以下不合法的操作:
DATA.('Motor','Actuators')
解决此问题的一种方法是将 DATA
中的值提取到 cell
数组中,然后您可以使用 {:}
索引生成以逗号分隔的列表,如下所示输入 synchronize
,像这样:
DATA = struct('Motor', timetable(datetime, rand), ...
'Actuators', timetable(datetime, rand));
DATA_c = struct2cell(DATA);
TT = synchronize(DATA_c{:});
我将来自不同数据记录器的数据动态存储在时间表中,嵌套在结构 DATA
中,例如 DATA.Motor
(带有电机数据的时间表),DATA.Actuators
(带有执行器的时间表数据)等等。
我的objective是要有一个同步和合并这些时间表的功能,这样我就可以使用一个大时间表。
我正在尝试使用 synchronize
合并和同步这些时间表:
fields = fieldnames(DATA);
TT = synchronize(DATA.(fields{1:end}));
但出现以下错误:
Expected one output from a curly brace or dot indexing expression, but there were 3 results.
这让我很困惑,因为 DATA.(fields{1})
return DATA
结构的第一个字段名称的时间表。
非常感谢任何关于如何解决这个问题的想法。
这里的问题是 fields{1:end}
正在返回一个“逗号分隔列表”,并且您不能将其中一个用作结构点索引表达式。 IE。就好像您尝试了以下不合法的操作:
DATA.('Motor','Actuators')
解决此问题的一种方法是将 DATA
中的值提取到 cell
数组中,然后您可以使用 {:}
索引生成以逗号分隔的列表,如下所示输入 synchronize
,像这样:
DATA = struct('Motor', timetable(datetime, rand), ...
'Actuators', timetable(datetime, rand));
DATA_c = struct2cell(DATA);
TT = synchronize(DATA_c{:});