I am trying to pull the data from each row of the entire 100x2 int16 matrix of "cr" and print in my file 'conc.dat'. However, only one row is being printed, it does not seem like my for loop is going through the entire matrix. Can someone help me figure out why and how to fix this issue?
for k = 1:length(cr);
row = cr(k,:);
conc = counts(row(:,1));
fileID = fopen('conc.dat','w');
fprintf(fileID,'\n');
fprintf(fileID,'%12.f\n',conc);
fclose(fileID)
end

 채택된 답변

DGM
DGM 2021년 11월 1일
편집: DGM 2021년 11월 1일

0 개 추천

You're overwriting the file every single time you write a line. That's the difference between opening the file with 'w' permissions and 'a' (write-append) permissions.
There's no need to open and close the file every single time anyway. Just move that outside the loop.
cr = [1:10; 11:20].'
counts = 101:110;
fileID = fopen('conc.dat','w');
for k = 1:length(cr)
row = cr(k,:);
conc = counts(row(:,1));
fprintf(fileID,'\n');
fprintf(fileID,'%12.f\n',conc);
end
fclose(fileID);

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Low-Level File I/O에 대해 자세히 알아보기

질문:

2021년 11월 1일

편집:

DGM
2021년 11월 1일

Community Treasure Hunt

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

Start Hunting!

Translated by