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.

4

1 回答 1

3

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

z = eng.tstFnc(*t)

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

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

于 2015-09-02T17:10:11.807 回答