如何将元组从Python传递给Matlab函数

时间:2015-09-02 17:01:57

标签: python matlab python-2.7 matlab-engine

我有一个Matlab函数,我从python脚本调用:

import matlab.engine

eng = matlab.engine.start_matlab()
t = (1,2,3)
z = eng.tstFnc(t)
print z

函数tstFnc如下:

function [ z ] = tstFnc( a, b, c )
z = a + b + c

然而,这不起作用,因为Matlab接收一个输入而不是三个输入。这可以起作用吗?

注意:这是我想要做的简化案例。在实际问题中,我有一个可变数量的列表,我将其传递给Matlab函数,该函数使用varargin在Matlab函数中进行解释。

1 个答案:

答案 0 :(得分:3)

作为注释中的注释,需要应用参数而不是作为长度为1的元组传递。

z = eng.tstFnc(*t)

这会导致使用tstFnc参数调用len(t)而不是单个元组参数。同样,你可以单独传递每个参数。

z = eng.tstFnc(1, 2, 3)