【发布时间】:2015-11-25 23:16:03
【问题描述】:
我有一个名为 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 循环更好的方法?
【问题讨论】:
-
你到底想把什么放到另一个向量中?您想要
struct中每个字段的值吗?你在做A.B时会得到它,因为A是一个双元素结构。第一个struct元素有三个字段,而另一个元素有五个。通过执行A.B,您将解压缩所有structs,并且它无处可去,因此它会用每个struct淹没命令提示符。 -
@rayryeng - 我想要这样的东西: AB(1) = A(1).B 这将给出 X: 2, Y: 4, Z: 2 等我也做了编辑我原来的问题
标签: matlab