How to form a structure array variable?

1 visualización (últimos 30 días)
Leon
Leon el 26 de Oct. de 2020
Comentada: Leon el 26 de Oct. de 2020
I have a structure array like the below
Test{1}.a = [1; 2; 3];
Test{1}.b = [7; 3; 22];
Test{1}.c = [4; 9; 22];
...
If I have a variable (Var) that can be either a, or b, or c, ...
If Ind == 1;
Var = 'a';
elseif Ind == 2
Var = 'b';
elseif Ind == 3
Var = 'c';
end
How do I specify Test{1}.Var, so that when Ind == 1, it will be Test{1}.a, and so on?
Many thanks!

Respuesta aceptada

Cris LaPierre
Cris LaPierre el 26 de Oct. de 2020
See Steven Lord's reply here. Basically, something like this:
Test{1}.a = [1; 2; 3];
Test{1}.b = [7; 3; 22];
Test{1}.c = [4; 9; 22];
Ind = 2;
if Ind == 1
Var = {'a'};
elseif Ind == 2
Var = {'b'};
elseif Ind == 3
Var = {'c'};
end
Test{1}.(Var{1})
ans = 3×1
7 3 22
  1 comentario
Leon
Leon el 26 de Oct. de 2020
Exactly what I'm looking for. Many thanks!

Iniciar sesión para comentar.

Más respuestas (1)

Stephen23
Stephen23 el 26 de Oct. de 2020
Editada: Stephen23 el 26 de Oct. de 2020
Simpler using indexing:
vec = {'a','b','c'};
Test{1}.(vec{Ind})

Categorías

Más información sobre Resizing and Reshaping Matrices en Help Center y File Exchange.

Etiquetas

Productos


Versión

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by