在 Python 中使用 MATLAB 数组
要在 Python® 中使用 MATLAB® 数组,您可以按照安装用于 Python 的 MATLAB Engine API中的说明在运行打包应用程序之前安装 Python 引擎,也可以在以下程序中先使用 import mypackage,然后再使用 import matlab。
MATLAB Engine API for Python 提供了一个名为 matlab 的 Python 包,使您能够从 Python 调用 MATLAB 函数。matlab 包提供了用于在 Python 中创建 MATLAB 数组的构造函数。它可以从 Python 序列类型创建任何 MATLAB 数值或逻辑类型的数组。支持多维 MATLAB 数组。有关其他受支持的数组类型的列表,请参阅在 MATLAB 和 Python 之间传递数据。
示例
在 Python 中创建一个 MATLAB 数组,并对其调用 MATLAB 函数。假设您有一个名为
mypackage的包,该包中有一个名为mysqrt的方法,您可以使用matlab.double根据包含数值的 Python 列表创建一个双精度数组。您可以对x调用 MATLAB 函数mysqrt,返回值是另一个matlab.double数组,如以下程序所示:import matlab import mypackage pkg = mypackage.initialize() x = matlab.double([1,4,9,16,25]) print(pkg.mysqrt(x))输出为:
[[1.0,2.0,3.0,4.0,5.0]]
创建一个多维数组。
magic函数返回 Python 范围的二维数组。假设在mypackage中有名为mysqrt的方法,您可以使用以下代码调用该方法:import matlab import mypackage pkg = mypackage.initialize() x = matlab.double([1,4,9,16,25]) print(pkg.mymagic(6))输出为:
[[35.0,1.0,6.0,26.0,19.0,24.0],[3.0,32.0,7.0,21.0,23.0,25.0], [31.0,9.0,2.0,22.0,27.0,20.0],[8.0,28.0,33.0,17.0,10.0,15.0], [30.0,5.0,34.0,12.0,14.0,16.0],[4.0,36.0,29.0,13.0,18.0,11.0]]