我有一个名为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循环更好的方法?
答案 0 :(得分:1)
结构不能与不同的字段连接在一起。你可以做到的一件事是将所有结构元素放入一个单元格数组中,然后调用cellfun来取消引用X:
ABX = cellfun(@(c) c.X, {A.B})
资源: