Batch Processing of a Function with Different Arguments
2 次查看(过去 30 天)
显示 更早的评论
Hello,
I read the documentation on batch and diary functions, but I could not find the answer. I have a function, longjob(n), which needs to be run for many n values, which are recorded in nVector. I would like to record the output to the screen for each run.
Right now, I'm typing many lines:
someJob1=batch('longjob',1,{nVector(1)})
someJob2=batch('longjob',1,{nVector(2)})
someJob3=batch('longjob',1,{nVector(3)})
...
diary(someJob1) >> job1out.txt
diary(someJob2) >> job2out.txt
diary(someJob3) >> job3out.txt
...
Question: How do I put this in a for loop without using eval? I am not sure how to create a job vector.
Thanks.
0 个评论
采纳的回答
Thomas Ibbotson
2014-10-14
I think code that looks something like this will work:
for jobIdx = 1:length(nVector)
jobs(jobIdx) = batch('longjob', 1, {nVector(jobIdx)});
end
for jobIdx = 1:length(jobs)
% Wait for the job to finish running before getting its output
wait(jobs(jobIdx));
diary(jobs(jobIdx), ['job' num2str(jobIdx) 'out.txt']);
end
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Startup and Shutdown 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!