choose B or C or D if A does not exist - how to write this?

2 ビュー (過去 30 日間)
Tomaszzz
Tomaszzz 2024 年 7 月 28 日
コメント済み: Paul 2024 年 7 月 28 日
Hi all,
I have the following:
switch joint
case 'Knee'
prox = 'HipJC';
dist = 'LEPI';
wand = 'THPA' ;
end
side = {'R','L'};
for i = 1:length(side)
wandMk = data.([side{i},wand]).line;
end
I got the following error: Unrecognized field name "LTHPA", which is because 'LTHPA' does not exist in my structure.
I could use 'THPP' or 'THDA' or 'THDP' instead of 'THPA', because I know these exist. Hence, how could I rewrite the above for this to run?
For example:
if 'THPA' does not exist then
wand = 'THDA' or 'THDA' or 'THDP'
Thanks!

採用された回答

Paul
Paul 2024 年 7 月 28 日
Create an example structure
data.THDA = 1;data.THPP = 2;data.THDP = 3;
Use fieldnames to get the fields of data
fnames = fieldnames(data)
fnames = 3x1 cell array
{'THDA'} {'THPP'} {'THDP'}
Field to test
wand = "LTHPA"
wand = "LTHPA"
Reassign if invalid field
if ~any(strcmp(wand,fnames))
wand = "THDA"
end
wand = "THDA"
data.(wand)
ans = 1
  1 件のコメント
Paul
Paul 2024 年 7 月 28 日
Use isfield instead of strcmp/fieldnames Thanks @Stephen23! How did I not know about that function (rhetorical question)?

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeEnvironment and Settings についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by