constructing file identifier from string?
2 views (last 30 days)
Show older comments
I open several files, write text to the files upon opening them...for example...
fullfileKBDR = strcat('/Users/jkoval/Documents/MATLAB/archived_fod_forecasts/output/KBDR_',forecastyears(k,:),'.csv')
fileID1 = fopen(fullfileKBDR, 'w')
fprintf(fileID1,formatSpec)
fullfileKMHT = strcat('/Users/jkoval/Documents/MATLAB/archived_fod_forecasts/output/KMHT_',forecastyears(k,:),'.csv')
fileID2 = fopen(fullfileKMHT, 'w');
fprintf(fileID2,formatSpec)
fullfileKASH = strcat('/Users/jkoval/Documents/MATLAB/archived_fod_forecasts/output/KASH_',forecastyears(k,:),'.csv')
fileID3 = fopen(fullfileKASH, 'w');
fprintf(fileID3,formatSpec)
fullfileKPWM = strcat('/Users/jkoval/Documents/MATLAB/archived_fod_forecasts/output/KPWM_',forecastyears(k,:),'.csv')
fileID4 = fopen(fullfileKPWM, 'w');
fprintf(fileID4,formatSpec)
But the question is that later in the code, I have a loop where I'm processing data in the loop. I want to be able to construct the file identifier (e.g. fileID1, fileID2, fileID3, fileID4) and write to the file based on the loop counter. So something that would like this, but it doesn't work:
for n = 1:4
%Do stuff
nasstr = string(n)
fileident = strcat('fileID',nasstr)
fprintf(fileident, 'blah\n')
end
Can someone share the syntax that would make this work? Thanks.
0 Comments
Accepted Answer
KSSV
on 16 Jul 2018
You can initialize file identifiers as an array, and use them in loop.
fullfileKBDR = strcat('/Users/jkoval/Documents/MATLAB/archived_fod_forecasts/output/KBDR_','.csv')
fid(1) = fopen(fullfileKBDR, 'w')
fprintf(fileID1,formatSpec)
fullfileKMHT = strcat('/Users/jkoval/Documents/MATLAB/archived_fod_forecasts/output/KMHT_','.csv')
fid(2) = fopen(fullfileKMHT, 'w');
fprintf(fileID2,formatSpec)
fullfileKASH = strcat('/Users/jkoval/Documents/MATLAB/archived_fod_forecasts/output/KASH_','.csv')
fid(3) = fopen(fullfileKASH, 'w');
fprintf(fileID3,formatSpec)
fullfileKPWM = strcat('/Users/jkoval/Documents/MATLAB/archived_fod_forecasts/output/KPWM_','.csv')
fid(4) = fopen(fullfileKPWM, 'w');
fprintf(fileID4,formatSpec)
for n = 1:4
%Do stuff
nasstr = string(n)
fid(n) % this gives file identifier
end
0 Comments
More Answers (0)
See Also
Categories
Find more on Startup and Shutdown 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!