你们好,我在实验中需要用到4维样条插值,实验是用python写的,但是python中没有相关的API可以直接调用(样条插值最多支持到2维),于是我在python中调用matlab的内置函数griddedInterpolant() 来实现。出现的问题是构建好插值函数(模型)后,不能在python中调用它来预测查询点的值。以下是相关代码, import numpy as np import matlab.engine eng = matlab.engine.start_matlab() # 构造插值节点 x = np.array([1, 2, 3, 4, 5]) v = np.array([1.2, 0.6, 0.9, 4.5, 7.9]) # 转化为matlab支持的double类型 x_new = matlab.double(x.tolist()) v_new = matlab.double(v.tolist()) # 构建插值模型 F = eng.griddedInterpolant(x_new, v_new) # 查询点 xq = np.array([2.5, 2.7, 3.6]) xq = matlab.double(xq.tolist()) # 输出查询点的值 vq = F(xq) print(vq) eng.quit() # quit Matlab engine 下面是python报错提示, Traceback (most recent call last): File "D:/Data/GitHub/CAE_CSI_mutillayer/test.py", line 84, in <module> vq = F(xq) TypeError: 'matlab.object' object is not callable 进程已结束,退出代码1 我个人觉得问题出在红色代码那一句,但是不知道怎么解决它。帮我解决问题的小伙伴留一个联系方式,为表达谢意,向你转20米。 |
1 条回复