Calling programs (AMPL) from within Matlab on a Mac

조회 수: 3 (최근 30일)
Josh
Josh 2011년 8월 11일
Greetings, I just switched to a Mac, and am trying to call another program from within Matlab (in this case AMPL). I think my problem is simple: I want to call AMPL from a Matlab script. On a Windows computer I used the command
strAmplSystemCall = sprintf('ampl AC.run'); system(strAmplSystemCall);
(ampl is in the Matlab path). On the mac, I'm now getting the error
/bin/bash: ampl: command not found
I've tried it with './ampl' instead of just 'ampl' as well, and received the same error (with ./ampl not found). Anyone know the right syntax for this?
Josh

답변 (1개)

Chirag Gupta
Chirag Gupta 2011년 8월 11일
I guess, when you run ampl, you would need certain directories to be on the PATH (environment variable) as well as some dynamic libraries (DYLD_LIBRARY_PATH another env).
Try setting the environment variables before calling the system command. You should be able to do so using export command in the bash or using setenv directly from MATLAB
  댓글 수: 3
Walter Roberson
Walter Roberson 2011년 8월 11일
oldLP = getenv('DYLD_LIBRARY_PATH');
newLP = oldLP;
if ~isempty(newLP); newLP(end+1) = ':'; end
newLP = [newLP, 'TheAdditionalPath'];
setenv('DYLD_LIBRARY_PATH',newLP);
Josh
Josh 2011년 8월 12일
Thanks - I tried this, plus the instructions for adding the directory to the PATH (http://www.mathworks.com/help/techdoc/matlab_env/f0-12994.html#f0-38522). Unfortunately no success yet - I can use AMPL within the folder the program is in (can't move it around unfortunately due to licensing), but this is not nearly as convenient as being able to call it from anywhere.

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Search Path에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by