从Linux调用MATLAB文件使用MCR

25日视图(30天)
穆罕默德·艾哈迈德阿基
穆罕默德·艾哈迈德阿基 2023年4月13日在十九21
回答: Manoj Mirge 2023年4月20日在9:17
我有一个叫做“run_mycode MATLAB文件。米”,这段代码是一个函数有4参数(一个布尔值,两个空的字符串和一个垫子文件)。我想从一个Python脚本调用这个函数在Linux上使用MCR(我没有MATLAB在那台机器所以我使用MCR)。我试着以下:
子流程导入电话
mypart = / mycomputer / part.mat
mcr_path =“mycomputer / matlab / MATLAB_Compiler_Runtime /跟v91”
arg =“1”“”“”+ mypart
cmd =“run_mycode。sh '+ mcr_path +”“+参数
调用(cmd,壳牌= True)
然而,我得到以下结果:
/bin/sh: run_mycode。上海: command not found

答案(1)

Manoj Mirge
Manoj Mirge 2023年4月20日在9:17
你好,
虽然你在“run_mycode相同的目录中。sh”文件,Bash无法找到这个文件。 因为 当前目录 不是 在您的$ PATH变量中 Linux bash。
在Linux中, UNIX 及相关操作 系统中, 表示 当前目录。既然你想要运行一个文件在当前目录,目录在您的$ PATH中不是,你需要 / 告诉shell执行在哪里。所以,。/ run_mycode。上海means run the executable called run_mycode. 上海 在这个目录中。
因此, 需要指定的相对或绝对路径文件,以便知道我们的可执行文件。
关于你的情况, 代码是这样的:
子流程导入电话
mypart = / mycomputer / part.mat
mcr_path =“mycomputer / matlab / MATLAB_Compiler_Runtime /跟v91”
arg =“1”“”“”+ mypart
cmd =”。/ run_mycode。sh '+ mcr_path +”“+参数%增加。/
% run_mycode.sh
调用(cmd,壳牌= True)
希望这个有帮助。

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!