- 特定のサブ構造体内にフィールドが存在するかどうかを確認するには、そのサブ構造体に対して '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の構造体内のフィールドの存在を確認する関数はありますか?
4 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
MathWorks Support Team
il y a environ 21 heures
Réponse apportée : MathWorks Support Team
il y a environ 14 heures
'構造体'という特定の名前を持つ構造体が存在するかどうかを確認するには、'exist' 関数を使用します。また、構造体配列内にフィールドが存在するかどうかを確認するには、'isfield' 関数を使用します。しかし、私は構造体の中のどこかにフィールドが存在するかどうかを確認する関数が欲しいです。例えば、以下のコードでは、'isfield' 関数は "c" が "a" のフィールドであることを認識しません。
a.b.c = 1;
isfield(a, 'c')
この結果は以下の通りです:
ans =
0
Réponse acceptée
MathWorks Support Team
il y a environ 21 heures
MATLABには、構造体の階層全体、またはネストされた構造体を調べてフィールドが存在するかどうかを確認する関数はありません。'isfield' 関数はネストされた構造体の最上位レベルのみを調べます。他のレベルでフィールドが存在するかどうかを確認するには、以下のいずれかの方法を使用できます。
0 commentaires
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur ビッグ データの処理 dans Help Center et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!