我有一个名为a的结构体,它有一个名为B的[1x1]结构体,当我在命令行中运行A.B时,它返回两种类型的答案:
ans =
X: 3
Y: 2
Z: 4
ans =
X: 1
Y: 5
Z: 9
W: 4
V: 2
编辑:我要做的是把X的所有值都放到一个向量中,这样这个向量看起来就像这样:[3,1,…]
为此,我首先创建了一个名为AB的向量,这样我就可以将[AB. x]放入另一个可以使用的向量中。
我当前的策略是运行一个像这样的for循环:
for idx = 1:length(A)
AB(idx) = [A(idx).B];
end
但是我得到一个错误,"不同结构之间的下标赋值。"我想这是因为B的一些值有3部分,而另一些值有5部分。
如何解决这个问题?
或者有比for循环更好的方法吗?
结构体不能与不同的字段连接在一起。要获得X,你可以做的一件事是将所有结构元素放入单元格数组中然后调用cellfun来解引用X:
ABX = cellfun(@(c) c.X, {A.B})
资源:
逗号分隔列表
cellfun
匿名函数