“错误”;功能';子索引';未为类';embedded.fi'&引用;更改Matlab版本时

“错误”;功能';子索引';未为类';embedded.fi'&引用;更改Matlab版本时,matlab,Matlab,我在Matlab中有一个结构'ss',它有许多字段,这些字段一开始都是零 声明: ss = struct; ss.angle_spit = zeros(ais,his,tis,2); ss.angle_neck = zeros(ais,his,tis,2); 然后我进入一个for循环,每次迭代我都像这样更新这些值 ss.angle_spit(ai,hi,fi,ti,1) = angle_spit_d; ss.angle_spit(ai,hi,fi,ti,2) = angle_spit_u

我在Matlab中有一个结构'ss',它有许多字段,这些字段一开始都是零

声明:

 ss = struct;
 ss.angle_spit = zeros(ais,his,tis,2);
 ss.angle_neck = zeros(ais,his,tis,2);
然后我进入一个for循环,每次迭代我都像这样更新这些值

ss.angle_spit(ai,hi,fi,ti,1) = angle_spit_d;
ss.angle_spit(ai,hi,fi,ti,2) = angle_spit_u;
我在Matlab版本R2015a上运行此代码时没有出现错误,但是,当我开始在运行R2012a的另一台计算机上运行此代码时,它给出了错误

"Error using subsindex
Function 'subsindex' is not defined for values of class 'embedded.fi'.

Error in spit_additup_11a_for12long3_fixqs (line 409) 
ss.angle_spit(ai,hi,fi,ti,1) = angle_spit_d;"

我的理解是,我正在尝试为结构编制索引,这在2012年是不可能的,而在2015年是不可能的。我的假设正确吗?如果正确,您将如何在2012年修改代码以支持这一点?您能为结构创建更多的字段吗?多谢各位

我认为问题在于,您正在创建一个名为
fi
的索引变量,它与。当您尝试将其用作结构字段
ss.angle\u spit
的索引时,它会抛出给定的错误。错误的版本依赖性更可能取决于安装中是否包含定点设计器

尝试将
fi
重命名为其他名称。我希望这能解决问题


更广泛地说,您应该避免给变量赋予与现有函数相同的名称,因为它可能会对该函数产生阴影,或者导致您所看到的奇怪行为。同样,您也应该重命名结构变量,因为
ss
已经是一个。

谢谢!事情就是这样。