[未答复] 一个关于python与matlab交互的问题。有偿

 关闭 [复制链接]
hxf_uestc 发表于 2022-5-13 22:32:58
你们好,我在实验中需要用到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 条回复


hxf_uestc 发表于 2022-5-13 22:34:18
上面只是一个简单示例,并非实验中的四维数据。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

相关帖子
相关文章
热门教程
站长推荐
快速回复 返回顶部 返回列表