我在 MATLAB 中有一個函數,它需要四個輸入function f = calculate_mat(F,M,a,b). 這里 F 和 M 是多維數組,“a”和“b”是常數項?,F在我必須在 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)
添加回答
舉報
0/150
提交
取消