How to plot multiple Graphs with nearly similar name of ordinate arrays
1 view (last 30 days)
I have 60 arrays which I called Eigenform1 until Eigenform60. They all share the exact same x-Values and now i want to plot them.
And there is my Problem. I would like to use a for loop like
plot(x_Values,[ Eigenvalues i ],'g-')
Where i in the expression i used to adress to a certain array of the 60 arrays i already defined.
Is there any solution to fix this (There surely is one I simply don't know)
Thanks and Bye
Eamon Gekakis on 23 Jun 2022
It is NOT recommended to dynamically name variables, here is why
That being said, this may help. In place of [ Eigenvalues i ], try this:
This will turn your ii iterator value into a string, combine the name string "Eigenform" with the iterator string, and then eval will evaluate the string and call the Array with the same name as the string.
dpb on 23 Jun 2022
"I have 60 arrays which I called Eigenform1 until Eigenform60. ... And there is my Problem. ..."
Indeed it is...
"Is there any solution to fix this..."
"Yes, Virginia, there is a Santa Claus!"
60 arrays which I called Eigenform1 until...Just "DON'T DO THAT!!!" :)
Use a cell array or a 2D array(*) where each column becomes the variable you created instead of another variable.
Specific code would depend on how you created these in the beginning; show us how that was done and we can guide to a much better and MATLAB-friendly solution.
For plotting and many other operations, the 2D or 3D array is ideal -- MATLAB is vectorized to operate on 2D arrays by column for most of its builtin anaysis functions;
where x is a vector and y a 2D array or same number of rows as numel(x) will plot each column versus x automagically; no other intervention needed. While 60 variables on one plot may be too many, you can create subset indexing expressions to select those wanted also dynamically.