Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

New to MATLAB?

Using loop in strings for import

Asked by Karl

Karl (view profile)

on 30 Apr 2013
Latest activity Answered by Jacob Lynch August on 24 Mar 2014

I have excelfiles with names "2011", "2012", "2013" that i want to read from Matlab. I want to use a for loop reading these excelfiles, since tha names are so alike.

This did not work

for i = 2011:1:2013; xlsread('adress\(i).xlsx');

It does not seem like Matlab interprest the "i" in the string at a number, but onlye as an "i". Anybody know how to solve this?

1 Comment

Alessandro Renna

Alessandro Renna (view profile)

on 6 May 2013

You can also use


to convert the numerical variable i in a string variable and then concatenate it to the string '.xlsx'


    for i=2011:1:2013
        file{i}=xlsread([num2str(i) '.xlsx']);

Karl (view profile)


No products are associated with this question.

2 Answers

Answer by per isakson

per isakson (view profile)

on 30 Apr 2013
Edited by per isakson

per isakson (view profile)

on 30 Apr 2013
Accepted answer

The number, e.g. 2012, must be converted to a string. Note the double back-slash, "\\"

    for ii = 2011:1:2013
        [ num, txt ] = xlsread( sprintf( 'adress\\%i.xlsx', ii ) );

1 Comment


Karl (view profile)

on 6 May 2013


per isakson

per isakson (view profile)

Answer by Jacob Lynch August on 24 Mar 2014

I have a similar problem. I have data taken from multiple machines with variable conditions, and a consistent heirarchy. E.g.

  • Machine = MAA, MAB, MAC, ..., MBH
  • Condition = 100, 200, 300, ..., 800
  • Part = Gold, Platinum, Silver

File = X:\Folder\Machine\Condition_Part\dat.csv

I want to treat text as I would a numerical list in a for loop. Obviously ['MAA' 'MAB' ... 'MBH'] would just concatenate the strings into one, which is not useful. I tried variations of the following and a few functions like strcat to name the file to no avail.

for machine = {'MAA' 'MAB' 'MAC' ... 'MBH'}
  for condition = {'100' '200' '300' ... '800'}
      for part = {'Gold' 'Platinum' 'Silver'}
          CSV = ['X:\Folder\' machine '\' condition '_' part '\dat.csv']

What's the best way to generally go about this without elseif or cases?


Contact us