gpt4 book ai didi

MATLAB - 如何解决 "Subscripted assignment between dissimilar structures"错误

转载 作者:行者123 更新时间:2023-12-04 18:02:39 25 4
gpt4 key购买 nike

我有一个名为 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}) 

资源:

Comma separated lists

cellfun

Anonymous functions

关于MATLAB - 如何解决 "Subscripted assignment between dissimilar structures"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32319403/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com