为了账号安全,请及时绑定邮箱和手机立即绑定

如何将Python数组转换为MATLAB可读数组?

如何将Python数组转换为MATLAB可读数组?

慕仙森 2023-09-12 20:11:29
我在 MATLAB 中有一个函数,它需要四个输入function f = calculate_mat(F,M,a,b). 这里 F 和 M 是多维数组,“a”和“b”是常数项。现在我必须在 python 脚本中调用这个函数,在其中给出所有上述输入值。import matlab.engineimport numpy as np # c, a, b are constantsc = 100 a = 30 b = 0.2freal = np.arange(0,30000,10) # real frequency rangefimag = np.arange(0,200,1) # imaginary frequency range F = np.zeros((3000,200))M = np.zeros((3000,200))for i in range(len(freal)):    for j in range(len(fimag)):        F = freal[i] + fimag[j]        omega = 2 * np.pi * F[i][j]        kx = omega / c # wave number         M[i][j] = np.abs(kx)eng = matlab.engine.start_matlab()fst = eng.calculate_mat(F, M, a,b)但 python 脚本抛出错误:“TypeError: unsupported Python data type: numpy.ndarray”我知道这是因为 Matlab 无法读取 numpy 数组格式。如何将 numpy 数组转换为 matlab 可读数组?任何例子都会有帮助。
查看完整描述

1 回答

?
Qyouu

TA贡献1786条经验 获得超11个赞

您无法使用 numpy 数组调用 matlab 函数。您必须将 numpy 数组转换为 matlab 矩阵:

fst = eng.calculate_mat(matlab.double(F.tolist(), is_complex=True), matlab.double(M.tolist(), is_complex=True), a, b)



查看完整回答
反对 回复 2023-09-12
  • 1 回答
  • 0 关注
  • 114 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信