MATLAB: Indexing or appending numerical variables

indexingmatrices

I have many matrix variables like G1, G2… I want to create a loop that new variables chance their name. For example,
for i=1:32 in first step when i=1 >> M=G1 second step when i=2 >> M=G2 … and so on.
How can I make "i" recognizable for G matrices?

Best Answer

You can do that using the eval function, and this seems a valid use for it. I would create ‘M’ as a cell array, and then assign elements of ‘M’ in a loop.
Example:
N = ...; % Number Of Matrices
for k = 1:N
M{k} = eval(sprintf('G%d', k));
end
You can then address individual elements of ‘M’ in the rest of your code. See the documentation on Cell Arrays for details on how to use them if you are not familiar with them.
NOTE This is UNTESTED CODE. It should work, probably with modifications.