我有一个遵循以下模式的 matlab 结构:
S.field1.data1
...
.field1.dataN
...
.fieldM.data1
...
.fieldM.dataN
我想同时从所有字段中为一个数据字段(例如,data3
)赋值。这在语义上类似于:
S.*.data3 = value
其中通配符“*”
代表结构中的所有字段(field1,...,fieldM)
。这是否可以在 matlab 中不使用循环来完成?
最佳答案
既然 field1 .. fieldM 是具有相同字段的结构数组,为什么不为“字段”创建一个结构数组呢?然后,您可以使用交易轻松地将所有“数据”成员设置为特定值。
field(1).data1 = 1;
field(1).data2 = 2;
field(2).data1 = 3;
field(2).data2 = 4;
[field.data1] = deal(5);
disp([field.data1]);
关于matlab - 同时为多个结构字段赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7908809/