从Python脚本调用Matlab函数:“没有足够的值来解包”ValueE

2024-04-27 04:54:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我从Python调用了一个Matlab函数,该函数有3个输出。Python给出ValueError: not enough values to unpack (expected 3, got 2)。以下是Matlab函数testCalledByPython

function [otpt1, otpt2, otpt3] = testCalledByPython(inpt)
otpt1 = rand(inpt, inpt);
otpt2 = magic(inpt);
otpt3 = zeros(inpt, inpt);

这是调用上述函数的Python脚本:

#!/usr/bin/env python3
import matlab.engine
eng = matlab.engine.start_matlab()
otpt1, otpt2, otpt3 = eng.testCalledByPython(2)

如果用otpt1, otpt2 = eng.testCalledByPython(2)替换最后一行,它将运行,但输出是:

otpt1, otpt2
Out[5]: 
(matlab.double([0.8147236863931789,0.12698681629350606]),
 matlab.double([0.9057919370756192,0.9133758561390194]))

显然,这些输出是错误的。我该怎么解决?你知道吗


Tags: 函数notengenginevaluesdoublematlabvalueerror