- 特定のサブ構造体内にフィールドが存在するかどうかを確認するには、そのサブ構造体に対して 'isfield' を使用します。例では、a.b の値自体が構造体であり、これに対して 'isfield' を呼び出すことができます。a.b.c = 1;isfield(a.b, 'c')結果は以下の通りです:注意:最初の入力引数が構造体配列でない場合、'isfield' は 0 (false)を返します。ドット表記でアクセスできるプロパティを持つ他のMATLABデータ型もありますが、それらは構造体配列ではありません。ans = logical 1
- ネストされた構造体の任意のレベルでフィールドが存在するかどうかを確認するには、構造体のすべてのレベルを調べる新しい関数を作成します。MATLABエディタを開き、次の関数を貼り付けます。この関数を 'myIsField.m' という名前でMATLABファイルとして保存してください。function isFieldResult = myIsField(inStruct, fieldName)
MATLABの構造体内のフィールドの存在を確認する関数はありますか?
9 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
MathWorks Support Team
il 21 Nov 2024 alle 0:00
Risposto: MathWorks Support Team
il 21 Nov 2024 alle 6:54
'構造体'という特定の名前を持つ構造体が存在するかどうかを確認するには、'exist' 関数を使用します。また、構造体配列内にフィールドが存在するかどうかを確認するには、'isfield' 関数を使用します。しかし、私は構造体の中のどこかにフィールドが存在するかどうかを確認する関数が欲しいです。例えば、以下のコードでは、'isfield' 関数は "c" が "a" のフィールドであることを認識しません。
a.b.c = 1;
isfield(a, 'c')
この結果は以下の通りです:
ans =
0
Risposta accettata
MathWorks Support Team
il 21 Nov 2024 alle 0:00
MATLABには、構造体の階層全体、またはネストされた構造体を調べてフィールドが存在するかどうかを確認する関数はありません。'isfield' 関数はネストされた構造体の最上位レベルのみを調べます。他のレベルでフィールドが存在するかどうかを確認するには、以下のいずれかの方法を使用できます。
0 Commenti
Più risposte (0)
Vedere anche
Categorie
Scopri di più su ビッグ データの処理 in Help Center e File Exchange
Prodotti
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!