我有5种不同的结构,我想为所有这些计算一些变量。为此,我编写了以下代码:
for i=1:5
[StructureI(i), ReqTab(i), jt(i), B(i)]=Checkall(E);
end
值StructureI, ReqTab, jt and B
在另一个函数中计算,它们是
StructureI= 1X4 matrix,
ReqTab= 4X2 matrix,
jt=2x1 matrix,
B=4x4 matrix
当我运行代码时,它会计算Checkall函数中的所有变量。但是,当它转向父代码时,它会给出错误“无法从struct转换为double。”
我该如何解决这个问题?
提前致谢。
答案 0 :(得分:1)
您不能直接从double分配给struct,而是必须编写要分配给的特定字段field_name
:
[StructureI(i).field_name, ReqTab(i), jt(i), B(i)] = Checkall(E);
如果所有这些变量(即ReqTab
,jt
,B
)都是结构,那么当然你需要在每个变量中指定字段,使用{ {1}}符号。
但是,正如评论中所提到的,循环的所有迭代都是相同的(在其中没有使用.
),那么为什么需要这个循环呢?只做5份?