How to save in a sequence of files each output of a "for" loop
    2 views (last 30 days)
  
       Show older comments
    
A have a number of txt files with data, and names like ABR1998, ABR1999 etc. I am running a script that includes a "for" loop to manupulate these files and I want each time the output is saved in txt files with the same (or similar name) e.g. ABRa1998,ABRa1999 etc. The output of each loop is the "A" (see below) which is a matrix with several columns and rows of data. Could you please tell me how to do this? Thanks-K.
matfiles=dir(fullfile('N:','My Documents','MATLAB','runfilesABR', '*.txt'));
    for n=1998:2005
        filename = ['ABR', int2str(n), '.txt'];
        A=load(filename);
        XXXXXXXXXX
        XXXXXXXXXX
        [d,c] = find(isnan(A));
        A(d,:) = [];
        A
    end
0 Comments
Accepted Answer
  Star Strider
      
      
 on 14 Sep 2014
        In the function forms of save and load, all arguments have to be strings:
filename = ['ABRa', int2str(n), '.txt'];
save(filename, 'A', '-ascii');
More Answers (1)
  Guillaume
      
      
 on 12 Sep 2014
        
      Edited: Image Analyst
      
      
 on 12 Sep 2014
  
      save(filename, A, '-ascii'); %change filename if you wish
I don't particularly understand why you're getting the list of file in the runfilesABR directory and then never you that list, though.
Can you write the code you used to generate the new filename? As the message tells you it's not a string.
4 Comments
  per isakson
      
      
 on 14 Sep 2014
				Add the lines
    filename
    whos A
before save or put a breakpoint at save to verify that they have appropriate values
See Also
Categories
				Find more on Loops and Conditional Statements in Help Center and File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


