Import MANY Excel sheets that have sequential naming with a loop

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?

 채택된 답변

Benjamin Kraus
Benjamin Kraus 2018년 2월 24일
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.

추가 답변 (0개)

카테고리

질문:

2018년 2월 23일

댓글:

2018년 2월 24일

Community Treasure Hunt

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

Start Hunting!

Translated by