MATLAB Answers


How can I change fileID name in a for loop?

Hi, I have this for loop

for i=1:3
    if i==1
    fid = fopen('report_1.xls', 'wt');       
    if i==2
    fid = fopen('report_2.xls', 'wt');        
    if i==3
    fid = fopen('report_3.xls', 'wt');        

In fact, I have much bigger than this loop. The problem is that I have to repeat fopen for each i. My question is can I avoid the if statements. So, the value of i can be written in fileID without adding it manually. For example,

for i=1:3
   fid = fopen('report_i.xls', 'wt');       

The above example will create a file named "report_i". However, I want to create 3 files named "report_1" , "report_2", and "report_3". How can I do that?

Thank you so much in advance


Log in to comment.


2 Answers

Answer by Pedro Villena on 14 Nov 2012
Edited by Pedro Villena on 14 Nov 2012
 Accepted Answer

 for i=1:3
    fid(i) = fopen(sprintf('report_%d.xls',i), 'wt');       

  1 Comment

Log in to comment.

Answer by C.J. Harris on 14 Nov 2012


And when you read this section of the FAQ, read the rest also. It is very efficient to profit from the mistakes, which have been made repeatedly by others.

Log in to comment.

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

Win prizes and improve your MATLAB skills

Play today