MATLAB: How to form a structure array variable

MATLABstructure array

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!

Best Answer

  • 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