我有一个 issue.m 文件,它的功能如下:myfun(p,m)
.
它进行一些计算并返回结果。为了测试这个函数的执行,我有一个如下所示的 test.m 文件。
myfun(myarg1,myarg2)
如果我将这个文件运行为:
octave test.m
那么它会返回正确的结果,如下所示:0.38007
现在,问题是使用 python 调用这个函数 myfun(p,m) 时。我尝试使用 python 库:oct2py
python代码如下所示:
import sys
import subprocess
import oct2py
import requests
from oct2py import octave
def myfun(p,m):
octave.addpath('/mypath');
oc = oct2py.Oct2Py()
#res = octave.myfun(p,m nout=1);#this didn't work, hence comment
#res = oc.myfun(p, m) #this didn't work, hence comment
x = oc.feval("myfun",p,m);
print(x);
if __name__ == '__main__':
myfun(sys.argv[1],sys.argv[2])
当我将此代码运行为:python FileName.py arg1 arg2(与我在 test.m 中使用的参数相同)时,它会给我一条警告消息和一个空列表,如下所示:
警告:返回值列表中的某些元素未定义 []
我不知道该怎么办。由于该函数似乎在使用八度时以正确的格式返回正确的结果。但由于某种原因 oct2py 无法正常工作。