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

2 visualizaciones (últimos 30 días)
Tomaszzz
Tomaszzz el 28 de Jul. de 2024
Comentada: Paul el 28 de Jul. de 2024
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!

Respuesta aceptada

Paul
Paul el 28 de Jul. de 2024
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 comentario
Paul
Paul el 28 de Jul. de 2024
Use isfield instead of strcmp/fieldnames Thanks @Stephen23! How did I not know about that function (rhetorical question)?

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Environment and Settings en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by