- 特定のサブ構造体内にフィールドが存在するかどうかを確認するには、そのサブ構造体に対して '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の構造体内のフィールドの存在を確認する関数はありますか?
1 view (last 30 days)
Show older comments
MathWorks Support Team
ongeveer 11 uur ago
Answered: MathWorks Support Team
ongeveer 4 uur ago
'構造体'という特定の名前を持つ構造体が存在するかどうかを確認するには、'exist' 関数を使用します。また、構造体配列内にフィールドが存在するかどうかを確認するには、'isfield' 関数を使用します。しかし、私は構造体の中のどこかにフィールドが存在するかどうかを確認する関数が欲しいです。例えば、以下のコードでは、'isfield' 関数は "c" が "a" のフィールドであることを認識しません。
a.b.c = 1;
isfield(a, 'c')
この結果は以下の通りです:
ans =
0
Accepted Answer
MathWorks Support Team
ongeveer 11 uur ago
MATLABには、構造体の階層全体、またはネストされた構造体を調べてフィールドが存在するかどうかを確認する関数はありません。'isfield' 関数はネストされた構造体の最上位レベルのみを調べます。他のレベルでフィールドが存在するかどうかを確認するには、以下のいずれかの方法を使用できます。
0 Comments
More Answers (0)
See Also
Categories
Find more on ビッグ データの処理 in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!