我正在处理 matlab 中的一个小棘手问题:
我想给动态创建的结构体赋值(2. level):
我的结构如下所示:
a.b.c = 1 %Creates a struct with two levels
现在我想用 c1, c2, c3,...cn
自动填充 a.b
作为 c
的邻居元素。此外,第一个 leven b
必须动态更改,因此我无法对任何“路径”进行硬编码...所有值均由前缀(例如 b 或 c)和后缀(只是一个增加的数字)组成一个循环)
我主要关心的是,这个过程必须通过循环而不是手动完成(否则我会通过手动编辑进行许多复制/粘贴行)。
如果有人能给我提示,那就太好了。
问候,波斯克伦
最佳答案
我不太确定这是否是您要找的。它使用动态字段名称创建 11 个 b 条目和 n c 条目:
>> n = 5; >> for ii = 1:11 for jj = 1:n a.b(ii).(sprintf('c%u', jj)) = 1; end end >> a a = b: [1x11 struct] >> a.b(1) ans = c1: 1 c2: 1 c3: 1 c4: 1 c5: 1 >> a.b(3) ans = c1: 1 c2: 1 c3: 1 c4: 1 c5: 1
关于matlab - 在第二级结构中赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5323981/