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!