亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

插值西比蟒蛇

插值西比蟒蛇

Cats萌萌 2022-09-13 19:28:43
我嘗試使用西比插值.interp2d,但我有一個問題。這是我的代碼:import scipy.interpolate as itpimport numpy as npimport matplotlib.pyplot as pltz_srtrm = 100 * np.random.rand(4,4)x_srtrm = np.arange(0,4)y_srtrm = np.arange(0,4)I = itp.interp2d(x_srtrm,y_srtrm,z_srtrm,kind='cubic') xi = np.linspace(0,4,100) yi = np.linspace(0,4,100) Z = I(xi,yi) zx = np.arange(0,100)zy = np.arange(0,100)I_inv = itp.interp2d(zx,zy,Z,kind='cubic') xj = np.linspace(0,100,4) yj = np.linspace(0,100,4) z = I_inv(xj,yj)fig = plt.figure()ax1 = fig.add_subplot(1,3,1)ax1.imshow(z_srtrm)ax2 = fig.add_subplot(1,3,2)ax2.imshow(Z)ax3 = fig.add_subplot(1,3,3)ax3.imshow(z)plt.show()通常,z_srtm應等于 z,但事實并非如此。你能解釋一下為什么嗎?提前感謝您。
查看完整描述

1 回答

?
慕無忌1623718

TA貢獻1744條經驗 獲得超4個贊

原因是由于工作原理而產生的逐個錯誤:np.arange


>>> np.arange(0, 10)

array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

您需要進行兩項更改。首先,從 0 到 3,因此在上采樣時需要保持這一點:x_srtrmy_srtrm


I = itp.interp2d(x_srtrm, y_srtrm, z_srtrm, kind='cubic') 

xi = np.linspace(0, 3, 100) 

yi = np.linspace(0, 3, 100)

Z = I(xi, yi)

其次,從 0 到 99,因此在縮減采樣時需要考慮它:zxzy


I_inv = itp.interp2d(zx, zy, Z, kind='cubic') 

xj = np.linspace(0, 99, 4)

yj = np.linspace(0, 99, 4)

z = I_inv(xj, yj)


查看完整回答
反對 回復 2022-09-13
  • 1 回答
  • 0 關注
  • 81 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號