Variables within other variables

11 vues (au cours des 30 derniers jours)
Joe Bennet
Joe Bennet le 2 Avr 2021
Commenté : Stephen23 le 2 Avr 2021
I have variables L1 through L15 in my script and i am wondering if it would be possible to represent thesevariables as 'Ln' where n independant variable, in a way that allows the computer to read 'L4' for instance. This would mean instead of changing L1 at all locations in my script i can just change the one 'n' value and it does the rest for me?
  2 commentaires
Rik
Rik le 2 Avr 2021
@Sajid, please move your comment to the answer section.
@Joe, you could succeed using eval, but you should use the solution outlined by Sajid instead.
Stephen23
Stephen23 le 2 Avr 2021
Putting your data into one vector/array would be a much better use of MATLAB. Then you could use basic, powerful, efficient MATLAB approaches to writing your code, such as vectorization and indexing.
Your current approach, with lots of numbered variables, forces you into writing complex, inefficient code.

Connectez-vous pour commenter.

Réponse acceptée

Image Analyst
Image Analyst le 2 Avr 2021
There are many options depending on what type of variables your L are. You could use a double array, a structure array, a table, or a cell array. For example, if the L are scalars, you could do
Ln = [L1, L2, L3, L4, L5, L6, L7, L8, L9, L10, L11, ;12, L13, L14, L15];
n = 9; % Whatever....
result = Ln(n)

Plus de réponses (1)

Sajid Afaque
Sajid Afaque le 2 Avr 2021
I am not clear with your question but with whatever i have understood is
you can have a single cellarray containg all the variables from L1 to L15.
you can access the cells using the required index .
try it might help
% example
L1 = 'dog';
L2 = 'cat';
L3 = 'fish';
% now storing these variables in a single cell array
Lgeneral{1} = L1;
Lgeneral{2} = L2;
Lgeneral{3} = L3;
%suppose you want to access now L2
accessed_L2 = Lgeneral{2} ;

Produits


Version

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by