2017-10-26 18 views
1

Matlabに構造体 'ss'があり、最初はすべてゼロになるフィールドがいくつかあります。エラー "関数 'subsindex'は、クラス 'embedded.fi'の値に対して定義されていません。" Matlabのバージョンを変更するとき

宣言:

ss = struct; 
ss.angle_spit = zeros(ais,his,tis,2); 
ss.angle_neck = zeros(ais,his,tis,2); 

私はその後、私は、このようなように、これらの値を更新し、ループの各反復のために行きます。私はそれが私に

"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;" 

私の理解では、ということであるエラーを与えるR2012aを実行している別のコンピュータ上でそれを実行するために始めたとき

ss.angle_spit(ai,hi,fi,ti,1) = angle_spit_d; 
ss.angle_spit(ai,hi,fi,ti,2) = angle_spit_u; 

私は、しかし、エラーなしでMATLABバージョンR2015aでこのコードを実行していました私は構造体のインデックスを作成しようとしていますが、2012年には可能ではなく、2015年です。これを前提にして正しいでしょうか?もしそうなら、2012年にこれをサポートするコードをどうやって変更しますか?あなたは構造体のためにもっと多くのフィールドを作成しますか?ありがとうございました。私は、問題はあなたがインデックスに変数を作成しているということだと思います

答えて

2

fiと呼ばれ、それがFixed-Point Designerから機能fiと混同されています。構造体フィールドss.angle_spitにインデックスとして使用しようとすると、指定されたエラーがスローされます。エラーのバージョン依存性は、固定小数点デザイナがインストールに含まれているかどうかに依存する可能性が高くなります。

fiの名前を変更してみてください。私はその問題を解決することを期待しています。

もっと広い意味では、変数がその関数をシャドウするか、見た目のように奇妙な動作につながる可能性があるので、変数に既存の関数と同じ名前を与えないでください。したがって、ssは既にexisting functionであるため、構造変数の名前を変更する必要があります。

+0

ありがとうございました!それはまさに何が起こったかです。 – James

関連する問題