MATLAB: Name variables according to string

dynamicevalMATLABrenamestringstructvariables

Hello, my problem is as follows:
  • I have a series of folders named "100-'some text", "101-'blahblah'", "102-…", "103-…"
  • Each folder has a .txt file with columns of data used to generate a .mat file named "data"
  • These .mat files contain 1 struct named "data" with 2 fields: name & data. The names include 'Time', 'Speed', 'Temp', etc.
So I'd like to compare data between the folders by plotting Time vs. Temp for folder 100 and 101, but when I open the .mat files it overwrites the previous because they share the same name ("data").
What I'd like to do is open the .mat files and rename the signals according to the folder number. ie) "Time" will become "Time_100".
I know I should avoid using EVAL, but is there another way to do this? Or is there a way to avoid the problem entirely by naming the struct in each .mat file to "data_100"? I would prefer to extract the names in each struct, change them by appending the folder number, and then saving that workspace.
Thoughts?
Thanks

Best Answer

Why not store them in a struct array? If all mat files have the same fields that should work very well.