MATLAB结构转换错误

时间:2016-08-08 11:29:15

标签: matlab struct cell

我有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。”

我该如何解决这个问题?

提前致谢。

1 个答案:

答案 0 :(得分:1)

您不能直接从double分配给struct,而是必须编写要分配给的特定字段field_name

[StructureI(i).field_name, ReqTab(i), jt(i), B(i)] = Checkall(E);

如果所有这些变量(即ReqTabjtB)都是结构,那么当然你需要在每个变量中指定字段,使用{ {1}}符号。

但是,正如评论中所提到的,循环的所有迭代都是相同的(在其中没有使用.),那么为什么需要这个循环呢?只做5份?