You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从Python直接向MATLAB传递多个numpy数组变量?

解决Python向MATLAB传递多个NumPy数组的问题

核心原因

Python函数返回多个值时,本质是返回一个元组,MATLAB调用Python函数会将这个元组作为单个返回对象,所以你会得到1x2的元组变量。

直接解决方案(MATLAB端处理)

在MATLAB中调用时,直接对返回的元组进行解构,就能分别获取两个NumPy数组,再转换为double类型:

% 解构Python返回的元组,得到两个NumPy数组对象
[mat1_py, mat2_py] = py.matgenerator.matgenerator(number);

% 转换为MATLAB的double类型数组
mat1 = double(mat1_py);
mat2 = double(mat2_py);

可选:修改Python函数适配MATLAB(不推荐,无必要)

如果想让Python返回的结构在MATLAB里更直观,可以把两个数组打包成列表,但MATLAB对元组的解构已经足够简便,这种方式反而多此一举。示例仅作参考:

def matgenerator(number):
    import numpy as np
    mat = np.zeros((2,4))
    mat1 = number + mat
    mat2 = number*mat
    # 返回列表而非元组
    return [mat1, mat2]

在MATLAB中可通过索引获取:

result_list = py.matgenerator.matgenerator(number);
mat1 = double(result_list{1});
mat2 = double(result_list{2});

总结

最简洁高效的方式还是在MATLAB端直接解构Python返回的元组,无需修改Python代码,就能分别拿到两个NumPy数组并转换为MATLAB的double类型。

内容的提问来源于stack exchange,提问作者Kosu K.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 05:06:28