For loop not working through matrix
조회 수: 9 (최근 30일)
이전 댓글 표시
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
댓글 수: 0
채택된 답변
DGM
2021년 11월 1일
편집: DGM
2021년 11월 1일
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개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Low-Level File I/O에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!