Python通过命令行调用MATLAB的简单实现

电脑系统:Windows 10

主要思路是通过 Windows 系统中的 Shell 来调用 MATLAB 运行 .m 文件。

参考了 MathWorks 官方文档:从 Windows 系统提示符启动 MATLAB 程序

给出 MATLAB 的测试代码:

% test.m
funtion res = test(a, b)
res = a + b;
dips(res);
fprintf('hello, world!')
end

将其命名为test.m,并放置于 D 盘根目录。

首先在 Shell 中运行 .m 文件。

将鼠标移动至电脑左下角【开始】菜单(就是四个小方块),单击右键,选择 Windows PowerShell ,即进入了 Shell 中。然后输入如下指令:

matlab -nojvm -nosplash -sd D:\ -r "test(1,2)"

下面对每个参数进行解释:

这篇文章也有说明)

  • -nojvm:启动命令窗口,不显示 MATLAB 正常界面上的元素,可有效减少内存。
  • -nosplash:启动 MATLAB 时不展示版权页。
  • quit:MATLAB 程序执行完毕后,自动关闭 MATLAB 命令行窗口,运行结果也会随之关闭。这条指令我没有加上去,但日后编程过程中会经常用。对于这条指令,它的写法一般如下
matlab -nojvm -nosplash -sd D:\ -r "test(1,2)";quit

记得加上分号。

运行代码之后得到结果如下图所示:

img1

然后在Python中实现同样的操作

Python os 模块中的 os.system() 就是对在系统层面执行命令行语句,因此可以考虑使用 os.system() 作为调用 MATLAB 文件的函数。

代码也很简单,只有两行,如下所示。

import os

os.system("matlab -nojvm -nosplash -sd D:\ -r \"test(1,2)\";quit")

即可实现在 Python 中通过命令行调用 MATLAB 程序。