如何将元组从 Python 传递给 Matlab 函数
How to pass tuple to a Matlab function from Python
我有一个从 python 脚本调用的 Matlab 函数:
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 函数,该函数在 Matlab 函数中使用 varargin
.
进行解释
如评论中所述,需要应用参数而不是作为长度为 1 的元组传递。
z = eng.tstFnc(*t)
这会导致使用 len(t)
个参数而不是单个元组参数调用 tstFnc
。同样,您可以单独传递每个参数。
z = eng.tstFnc(1, 2, 3)
我有一个从 python 脚本调用的 Matlab 函数:
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 函数,该函数在 Matlab 函数中使用 varargin
.
如评论中所述,需要应用参数而不是作为长度为 1 的元组传递。
z = eng.tstFnc(*t)
这会导致使用 len(t)
个参数而不是单个元组参数调用 tstFnc
。同样,您可以单独传递每个参数。
z = eng.tstFnc(1, 2, 3)