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

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

使用 matplotlib 繪制輪廓時出錯

使用 matplotlib 繪制輪廓時出錯

墨色風雨 2021-09-28 21:03:11
我正在嘗試繪制這樣的函數。但是,下面的代碼會導致錯誤。我認為原因是在 中返回了一個標量值norm (),但是如何解決呢?圖像的標簽從左邊開始代表定義公式、搜索空間、最優解import numpy as npimport matplotlib.pyplot as pltx = np.arange(-5, 5, 0.05) y = np.arange(-5, 5, 0.05) X ,Y= np.meshgrid(x, y)print(X)c1 = -2 * np.ones((2,200,200))c2 = 4 * np.ones((2,200,200))print(np.linalg.norm(np.array([X,Y]) - c1))Z = (1 - 1 / (1 * np.linalg.norm(np.array([X,Y]) - c1) + 1)) + (1 - 1 / (2 * np.linalg.norm(np.array([X,Y]) - c2) + 1))plt.pcolormesh(X, Y, Z,cmap='hsv') plt.show()
查看完整描述

1 回答

?
FFIVE

TA貢獻1797條經驗 獲得超6個贊

問題是您的 currentZ與您的X和 的維度不同Y。這可以通過打印 X、Y 和 Z 的形狀來驗證。原因是您沒有在方程式中提供axiswhile 計算norm,因此您得到了一個標量值。您可以參考官方文檔以獲取有關axis參數如何工作的更多信息。在您的情況下,由于您沒有為 指定任何值axis,因此它返回的是矩陣范數而不是向量范數


以下是您提供的解決方案,axis=0用于正確計算您X和Y


Z = (1 - 1 / (1 * np.linalg.norm(np.array([X,Y]) - c1, axis=0) + 1)) + (1 - 1 / (2 *np.linalg.norm(np.array([X,Y]) - c2,  axis=0) + 1))

plt.pcolormesh(X, Y, Z,cmap='hsv') 

http://img1.sycdn.imooc.com//615312f00001ccb904100268.jpg

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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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