generating command line output from inside matlab

A 5 star hangout for overworked and underpaid system admins.
Posts: 4
Joined: 2011/05/18 13:54:43

generating command line output from inside matlab

Postby mattmer » 2011/12/14 20:18:48


I am a centos 5 user and I am running matlab R2011a. I don't think my question is version specific at all.

I am running a markov chain monte carlo (MCMC) simulation that compares real data to my simulated data. The MCMC front end calls a program that generates the simulated data. This simulated data is returned to the MCMC program itself and then a subtraction of the simulated data from the real data is performed. The MCMC front end does this about 10000 times during a single run, so speed of the program being called by the MCMC is essential. Usually the subroutine called by the MCMC program is written in fortran. I am not particularly fortran savvy, so I was exploring options of using a matlab executable instead. Matlab has the option to open a file and write results to it, but this is obviously a bad idea, as running a simulation, then opening a file, writing to it, then closing it, followed by opening it with my MCMC front end would impose a huge overhead on the entire process. FORTRAN specifies output variables that are returned immediately, so this makes for very fast interaction between the subroutine and the front end.

Is there a UNIX/Matlab user that could help me with this? I need to have a matlab command that ultimately writes results to the unix command space. Matlab has the unix command, which has a syntax of unix('command') but I need to pipe my matlab results out. The matlab command disp displays a variable. This is what I need.

So I can imagine code like this:


But this does not work, as I can't find a way to pipe the output of disp into the unix command. Can anyone lend a hand?


Retired Moderator
Posts: 18276
Joined: 2006/12/13 20:15:34
Location: Tidewater, Virginia, North America

generating command line output from inside matlab

Postby pschaff » 2011/12/14 20:35:21

Please do not dual-post. Your duplicate post has been deleted. As you do not have a CentOS-5, or even a CentOS-specific question, your topic is being moved to Social.

You might want to try the Matlab Community support, perhaps using their search tool to look for linux pipe or similar.

Posts: 78
Joined: 2011/12/12 12:49:46

Re: generating command line output from inside matlab

Postby DaemonProgrammr » 2011/12/19 09:16:46

So if I understand correctly, you want to start another script in the unix environment, from MATLAB?

if 'unix('some-command')' does the trick for executing unix commands, you might want to research adding information (or references to information) as parameters?

I'm not a MATLAB user, but in pseudo-code I'd propose the following:

command = " "
dataset = (location-to)resultset-from-MATLAB

for element e in dataset
command.concatenate e.value

unix ('command')

This might not be very 'nice' because potentially you'd end up with a LOT of parameters, potentially breaking something in the execution.

Another way might be to have the script / program that processes the MATLAB result running as a seperate process and have the above script call a program that sends values to this script value for value. This takes some (re-)programming of the entire set of programs though..