1x10構造体配列にはたくさんのフィールドがありますが、構造体配列からフィールド変数の特定の値を持つ要素を削除したいと考えています。 私は探している値を知っていて、探しているはずのフィールドを見つけたら、構造体配列から要素を削除する方法も知っています。問題は、(可能であれば)ブルートフォースの解決策、すなわち構造体配列の要素を通って私が探している値と比較するfor-loopを通らずにエレガントに識別する方法です(可能な場合)。 サンプルコード:フィールドを持つ1×10構造体の配列としてバイヤー: ID、nは、予算 とid_testなどのID値に見つけるための変数= 12フィールド値に基づいて構造体の要素を見つける
0
A
答えて
1
あなたはstruct
の配列を持っている場合は、その事実を使用することができます、ドット参照を使用すると、comma-separated listが作成されます。これを[]
で囲むと、配列の作成が試みられ、{}
に囲むとセル配列に強制されます。
a(1).value = 1;
a(2).value = 2;
a(3).value = 3;
% Into an array
[a.value]
% 1 2 3
% Into a cell array
{a.value}
% [1] [2] [3]
比較するには、気になるフィールドをどちらかのセル配列に変換して比較します。この比較によって、元の構造体にインデックスを付けるために使用できる論理配列が生成されます。例えば
% Some example data
s = struct('id', {1, 2, 3}, 'n', {'a', 'b', 'c'}, 'Budget', {100, 200, 300});
% Remove all entries with id == 2
s = s([s.id] ~= 2);
% Remove entries that have an id of 2 or 3
s = s(~ismember([s.id], [2 3]));
% Find ones with an `n` of 'a' (uses a cell array since it's strings)
s = s(ismember({s.id}, 'a'));
関連する問題
- 1. xpath他の要素の値に基づいて要素を見つける
- 2. tabindexに基づいて要素を見つける
- 3. 同じ行の値に基づいて値を見つける
- 4. 属性に基づいて特定の要素を見つける
- 5. mongodbの名前に基づいて要素を見つける方法
- 6. サブタイプに基づいて動的にC++の構造体をキャスト
- 7. その値に基づいて、可変キーを見つける
- 8. requirejs構造体に基づいてjsファイルをバンドルします。
- 9. 構造ディレクティブ - 配置されている要素を見つける
- 10. C:構造体内の構造体要素へのポインタ
- 11. 共通の構成要素については、どのように2列に基づいて値を見つけるには? SQL
- 12. Seleniumでテキストとクラスに基づいた要素を見つける方法は?
- 13. 構造体のリスト内の要素の値を変更する
- 14. セレンの深いいくつかのタグに基づいて要素を見つける方法
- 15. 構造体 - なしで構造体要素にアクセスします。そして、 - >
- 16. C# - 複雑な構造体の値で配列内のキーを見つける
- 17. 構造体にハイブサポートオプションのフィールドを行い
- 18. スキップ構造体フィールドの構造体を考えると
- 19. 構造体配列要素へのアクセス
- 20. ポインタを使って構造体要素にアクセスするには?
- 21. [1x4構造体]の要素の配列を持つMatlabのarrayfun
- 22. 複数の変数に基づいて値の平均を見つける
- 23. Selenium Webdriver:複数の行の値に基づいてチェックボックスを見つける
- 24. Firebaseは、子の値に基づいて親のキーを見つけること
- 25. 異なる子要素の値に基づいて子要素を取得
- 26. ポインタを使って構造体要素にアクセスする
- 27. ユーザーの権限に基づいてフォーラムを見つける
- 28. ツリービューの選択に基づいてxmlノードを見つける
- 29. R:他の列に合わせた条件に基づいて、1列に要素を見つける方法
- 30. クラス名に基づいて以前のドロップダウン値を見つける方法
これは私が探していたまさにです! 1つのライナーは、自分のフィールドの1つから削除する必要がある要素を特定するだけでなく、削除します。ありがとう! – Leon