我有一个结构' 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年?你会为结构创建更多的字段吗?谢谢。
答案 0 :(得分:2)
我认为问题在于您正在创建一个名为fi
的索引变量,并且它与来自{的函数 fi
混淆{3}}。当您尝试将其用作结构字段ss.angle_spit
的索引时,它会抛出给定的错误。错误的版本依赖性更可能取决于您的安装是否包含定点设计器。
尝试将fi
重命名为其他内容。我希望能解决这个问题。
更广泛地说,你应该避免给变量赋予与现有函数相同的名称,因为它可以遮蔽该函数或导致你看到的奇怪行为。因此,您还应该重命名结构变量,因为ss
已经是Fixed-Point Designer。