Batch Processing of a Function with Different Arguments

6 views (last 30 days)
David C
David C on 13 Oct 2014
Commented: David C on 16 Oct 2014
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:
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.

Accepted Answer

Thomas Ibbotson
Thomas Ibbotson on 14 Oct 2014
I think code that looks something like this will work:
for jobIdx = 1:length(nVector)
jobs(jobIdx) = batch('longjob', 1, {nVector(jobIdx)});
for jobIdx = 1:length(jobs)
% Wait for the job to finish running before getting its output
diary(jobs(jobIdx), ['job' num2str(jobIdx) 'out.txt']);

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!