我正在编写一个python脚本,我希望从中调用matlabanovan函数。
我尝试对文件test.txt进行此功能的基本测试,该文件包含3列:1.472008228227131532e+01 1.000000000000000000e+00 1.000000000000000000e+00
1.423892587976163249e+01 2.000000000000000000e+00 1.000000000000000000e+00
1.434051782779769013e+01 3.000000000000000000e+00 1.000000000000000000e+00
1.478373164841650045e+01 4.000000000000000000e+00 1.000000000000000000e+00
1.463143763527341612e+01 5.000000000000000000e+00 1.000000000000000000e+00
1.580723346731706513e+01 6.000000000000000000e+00 1.000000000000000000e+00
1.964295632547030124e+01 1.000000000000000000e+00 2.000000000000000000e+00
1.922724696768608510e+01 2.000000000000000000e+00 2.000000000000000000e+00
1.886686329445662480e+01 3.000000000000000000e+00 2.000000000000000000e+00
1.960702674675711066e+01 4.000000000000000000e+00 2.000000000000000000e+00
1.983434584140020007e+01 5.000000000000000000e+00 2.000000000000000000e+00
2.050709640103466569e+01 6.000000000000000000e+00 2.000000000000000000e+00
此文件作为数组data导入。
在matlab中,anovan函数的调用如下:
^{pr2}$
在python中,我尝试如下调用函数:import matlab.engine
eng = matlab.engine.start_matlab()
data = np.genfromtxt('test.txt')
eng.anovan(matlab.double(data[:,0]),matlab.int8(data[:,1:2]))
不幸的是,这会产生以下错误:ValueError: initializer must be a rectangular nested sequence
我可以看到将最后两个数组列传递给函数时存在一些问题,但不确定解决方案。如有任何建议,我们将不胜感激。在