If you add the character '&' to the end of your system() command line, then system() will return as soon as the given program starts, without waiting for any output.
Depending on what you are doing, sometimes that is all you need -- to launch the commands and let them run.
Sometimes, though, you need to deal with the output of the program. If your system() command can tell the external program which output file to write into, sometimes you can check back to see if the file is ready. Doing that properly can be trickier than it sounds at first: you will not necessarily be able to just check if the output file exists, because the program might start writing to the file and might have it open for some time. There is no signalling mechanism for programs to say "Okay, I am finished with this file"; sometimes you can work something out with operating-system-specific "lock" facilities. Sometimes you can tell the readiness by the file size. Sometimes you might be willing to assume it is ready if it has not changed size in "sufficiently long". Sometimes you have to resort to checking to see which processes exist so you can tell whether the process exited.
If you are using MS Windows then there are ActiveX controls to create processes that you could use instead of system().
The Parallel Computing Toolbox has the benefit that you would not have to change anything about handling the external process other than making sure that any output files (and temporary files) have unique names so the copies do not clash with each other: you would system() up a particular invocation without using '&' and that worker would wait for that process to end.
Best Answer