Filter löschen
Filter löschen

constructing file identifier from string?

2 Ansichten (letzte 30 Tage)
Joseph Koval
Joseph Koval am 16 Jul. 2018
Beantwortet: KSSV am 16 Jul. 2018
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.

Akzeptierte Antwort

KSSV
KSSV am 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

Weitere Antworten (0)

Kategorien

Mehr zu Environment and Settings finden Sie in Help Center und File Exchange

Produkte


Version

R2017a

Community Treasure Hunt

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

Start Hunting!

Translated by