错误"功能' subsindex'没有为class' embedded.fi'的值定义。"。"改变Matlab版本时

时间:2017-10-26 18:04:24

标签: matlab

我有一个结构' ss'在Matlab中,有许多字段在开头都是零。

声明:

 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年?你会为结构创建更多的字段吗?谢谢。

1 个答案:

答案 0 :(得分:2)

我认为问题在于您正在创建一个名为fi的索引变量,并且它与来自{的函数 fi混淆{3}}。当您尝试将其用作结构字段ss.angle_spit的索引时,它会抛出给定的错误。错误的版本依赖性更可能取决于您的安装是否包含定点设计器。

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

更广泛地说,你应该避免给变量赋予与现有函数相同的名称,因为它可以遮蔽该函数或导致你看到的奇怪行为。因此,您还应该重命名结构变量,因为ss已经是Fixed-Point Designer