matlab - 同步存储在结构中的时间表
问题描述
我在时间表中动态存储来自不同数据记录器的数据,嵌套在结构DATA
中,例如DATA.Motor
(带有电机数据的DATA.Actuators
时间表),(带有执行器数据的时间表)等等。
我的目标是拥有一个同步和合并这些时间表的功能,这样我就可以使用一个大时间表。
我正在尝试用来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})
返回结构的第一个字段名称的时间表DATA
。
非常感谢任何关于我如何解决这个问题的想法。
解决方案
这里的问题fields{1:end}
是返回一个“逗号分隔列表”,并且不允许您将其中之一用作结构点索引表达式。即,就好像您尝试了以下,这是不合法的:
DATA.('Motor','Actuators')
解决此问题的一种方法是将值从数组中提取出来DATA
,cell
然后您可以使用{:}
索引生成以逗号分隔的列表作为 的输入synchronize
,如下所示:
DATA = struct('Motor', timetable(datetime, rand), ...
'Actuators', timetable(datetime, rand));
DATA_c = struct2cell(DATA);
TT = synchronize(DATA_c{:});
推荐阅读
- dbeaver - 如何在 dbeaver 中返回选项卡?
- javascript - 如何为表单创建可变数量的输入?
- typescript - 在 RxJS 中,为满足特定条件的下一个事件订阅一次性监听器的最佳方式是什么?
- java - 使用自定义图标时增加导航底部视图android中选定图标的高度?
- numpy - anaconda 和 pycharm 的 numpy 问题
- ios - willMove vs init,什么时候用哪个?
- typescript - TypeScript 编译器 API:typeChecker.typeToString() 与 Playground 工具提示
- c# - C# - 按值而不是引用复制大类(模型)
- swift - Swift - 无法访问结构属性
- office-ui-fabric - DetailList 在加载时选择第一个项目