Matlabでいくつかのスクリプトを実行していますが、これは長い間問題ありません。昨日はxxx.fields
を使用して構造体のフィールド名にアクセスする動作を停止し、単純化されたコード例をここでMatlabスクリプト.field関数の動作が停止しました
a.b.one = 1;
a.b.two = 2;
a.b.three = 3;
all_fields = fieldnames(a.b); % This works
all_fields = a.b.fields; % This used to work, it suddenly stopped working.
エラーメッセージがフィールド「非存在しないフィールドへの参照 『で示されているようです』。」、一部のコンピュータではall_fields = a.b.fields;
が動作します。
私はMatlabのバージョンが異なるいくつかのマシンを持っています(2014aから2016aまで)。コードは数日前に円滑に動いていましたが、昨年からこのスクリプトを変更していた人はいませんでした。 Matlabに手動でアップデート/パッチを適用することはありませんでした。 matlabにはいくつかの自動更新機能がありますか?
filednames
を使用すると効果的ですが、既存のコードベースにかなりの量の書き換えが必要です。
ご協力いただければ幸いです。ありがとう。
2番目のステートメントでは、問題の可能性がある**フィールド**の代わりに** fileds **にアクセスしています。しかし、再現可能な例を投稿することは良い考えです。 – mgilbert
コメントありがとう、私は例を更新しました。 – Joe
あなたの例では、そのエラーは発生しません、a.b.fieldsは '存在しないフィールドへの参照'フィールド 'エラーをスローします。構造体 'a'内の構造体' b'は 'fields'という名前のフィールドを持たないので、これは期待される動作です。 – mgilbert