Creating 'n' matrices with each one with 'n' in its name
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
Paul Barrette
el 17 de Sept. de 2023
Editada: Paul Barrette
el 20 de Sept. de 2023
I am building 'n' matrices line by line:
YEAR1 = zeros(DATE_RANGE(1,3));
YEAR2 = zeros(DATE_RANGE(2,3));
YEAR3 = zeros(DATE_RANGE(3,3));
...
To avoid manually entering each line, I would like to use a looping method, e.g.,
for n=1:10
YEARn = zeros(DATE_RANGE(n,3));
end
My searches bring me to the concept of 'dynamic access' (eval), which is not recommended. But am not sure if this applies to my case.
1 comentario
Stephen23
el 18 de Sept. de 2023
Editada: Stephen23
el 20 de Sept. de 2023
"To avoid manually entering each line, I would like to use a looping method"
That is a good approach. The best approach is to use arrays.
"My searches bring me to the concept of 'dynamic access' (eval)"
That is a very bad approach.
"But am not sure if this applies to my case."
That advice definitely applies to your case. Your approach using dynamic variable names is not recommended: your approach forces you into writing slow, complex, inefficient, obfuscated, buggy code that is hard to debug:
So far there is no obvious reason why you could not just use basic matrices or arrays for your data, just like MATLAB is designed for. If all of those arrays are the same size then a basic 3D array would suffice.
Note that calling ZEROS with one input argument often produces unexpected results.
Respuesta aceptada
Torsten
el 17 de Sept. de 2023
Movida: Torsten
el 17 de Sept. de 2023
YEAR{n} = zeros(DATE_RANGE(n,3));
2 comentarios
Dyuman Joshi
el 17 de Sept. de 2023
That is, using Cell arrays to store matrices of different sizes.
@Paul Barrette, Using Cell arrays is also the first alternative mentioned in the thread you have linked -
Más respuestas (1)
Walter Roberson
el 17 de Sept. de 2023
See https://www.mathworks.com/matlabcentral/answers/2020976-i-want-to-store-the-vector-from-each-for-loop-iteration-how-can-i-do-this#answer_1310391 for sample code that iterates through variable names, a, b, c, d, e, ... z, aa, ab, ac, ...
0 comentarios
Ver también
Categorías
Más información sobre Matrix Indexing 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!