我想使用日记('log.txt')来创建日志文件。
脚本使用createJob()+ createTask()或batch()作为Job运行。
创建了log.txt,但没有写入log.txt。
测试代码a.m:
c = parcluster;
j = createJob(c);
createTask(j, @b, 0, {});
submit(j);
b.m:
function [] = b()
diary off
delete b.txt
diary b.txt
disp('hello')
diary off
end
是否有任何方便的方法可以在作业中启用日记功能https://ww2.mathworks.cn/help/distcomp/diary.html除外?
答案 0 :(得分:0)
使用并行计算工具箱提交的作业可以自动捕获日记输出,而不是将diary
与文件一起使用。此输出在执行过程中更新。如果使用batch
命令创建作业,则默认情况下会捕获日记输出。这是一个可以证明日记输出正在更新的例子:
function [] = b()
for ii = 1:10
fprintf('hello: %d\n', ii);
pause(2);
end
end
然后像这样调用它:
j = batch(@b, 0);
wait(j, 'running');
while ~strcmp(j.State, 'finished')
diary(j)
pause(2)
end
(注意batch
的第二个输入是b
请求的输出参数的数量。这会导致输出如下所示打印到命令窗口:
Warning: The diary of this batch job might be incomplete because the job is still running. --- Start Diary --- hello: 1 hello: 2 hello: 3 hello: 4 --- End Diary ---