我有一个庞大的数据集,我正在缓存,然后将过滤后的分析数据写入磁盘。我的代码中有各种disp()
命令以及fprintf()
调用。倍频程大数据集,不显示()或写入不正确
我希望在进程运行时看到文件和屏幕上的结果,但是我发现我没有任何东西,直到我终止程序,此时所有的数据写入我的文件并且disp()
充斥终端。
会不会有办法强制disp()
和fprintf()
在处理时执行?
下面是一个例子:
function one(varargin)
setenv GNUTERM 'x11';
dirname = strcat(pwd, '/fileset');
files = dir(dirname);
disp('reading directory'), disp(dirname);
fileidx = find(~[files.isdir]);
out = fopen('write_data.txt', 'w');
fprintf(out, '"--- var a[0]", "--- var [1]";\n');
numfiles = length(fileidx);
for i = 1:numfiles
dispstring = sprintf('processing file %d of %d...', i, numfiles);
disp(dispstring);
filename = [dirname, '/', files(fileidx(i)).name];
disp(filename);
fid = fopen(filename, 'r');
%some processing here to obtain timevalues and maxvars
for i = 1:length(timevalues)
fprintf(out, '%d, %d;\n', timevalues(i), maxvars(i));
end
end
fclose(out);
end
我看到this post,但我不知道它的提示方法适用于我。它似乎也是fflush()
是为了将数据推送到更高优先级的图中。
您会在哪停止暂停?我正在考虑打印的for循环结尾... – jml
如果您已将其作为解决方案发布,我可以确认它。除此之外,我需要更多关于你会做什么的细节。随意张贴一个实际的答案... Thx – jml
虽然有人已经upvoted它,我想我只是不得不删除我的答案('暂停'没有帮助)。不知道还有什么可以做的伎俩,也许切换到Matlab? –