MATLAB: Getting variables name from char array

MATLABvariablevariables

assuming I have a char array like x
``a1=[1 2 3 4];a2=[10 11 15 11];b2=[4 5 6 7];c2=[8 9 10 11];x=['a1' 'a2' 'b2' 'c2']``
assuming I have data like this, how can I make the char in x be treated like the variable name meaning that ('a1' –> a1 == [1 2 3 4])
Notes: – All the variables are created before the char array
– I have to name the variables like (a1,a2,..etc.)
-I have a large number of variables

• Short answer: don't used these variable names: https://www.mathworks.com/matlabcentral/answers/304528-tutorial-why-variables-should-not-be-named-dynamically-eval, instead use a 2D array or a cell array.
The next best thing to do it to use 'a1', 'a2', ..., 'a3' as filednames of the struct. For example
``myStruct.a1=[1 2 3 4];myStruct.a2=[10 11 15 11];myStruct.b2=[4 5 6 7];myStruct.c2=[8 9 10 11];x={'a1' 'a2' 'b2' 'c2'}; % you need a cell array here. The code line in your question will not work``
Access them like this
``>> myStruct.(x{1}) % same as myStruct.a1ans =     1     2     3     4>> myStruct.(x{3})ans =     4     5     6     7``
As a last resort. If you are insistent on using these variable names, then use eval(): https://www.mathworks.com/help/matlab/ref/eval.html or evalc(): https://www.mathworks.com/help/releases/R2020a/matlab/ref/evalc.html
``a1=[1 2 3 4];a2=[10 11 15 11];b2=[4 5 6 7];c2=[8 9 10 11];x={'a1' 'a2' 'b2' 'c2'}; % you need a cell array here. The code line in your question will not work``
Access them using eval
``>> eval(x{1})a1 =     1     2     3     4>> eval(x{4})c2 =     8     9    10    11``