Import MANY Excel sheets that have sequential naming with a loop

1 Ansicht (letzte 30 Tage)
I'm trying to import excel sheets that are named as say r1 r2 r3 and so on. I'm looking to write a loop to create these dynamic variables so that I don't have to write a code for all 50 of them. I know eval is a bad idea. Any suggestions?

Akzeptierte Antwort

Benjamin Kraus
Benjamin Kraus am 24 Feb. 2018
All the commands in MATLAB that read Excel spreadsheets can accept a string naming the file. For example, readtable:
data = cell(1,50);
for f = 1:50;
name = sprintf('r%d',f);
data{f} = readtable(name);
end
If your question is about how to create variables named r1, r2, r3, etc. then you have (at least) three options:
  1. You can use eval, as you suggested.
  2. You can use cell arrays, as I used above.
  3. You can use struct, like this:
data = struct();
for f = 1:50;
name = sprintf('r%d',f);
data.(name) = readtable(name);
end
The struct will behave like a scope for your new variables, so that your new variables are not created in the base work space.

Weitere Antworten (0)

Community Treasure Hunt

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

Start Hunting!

Translated by