五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

關于m代碼轉py代碼的總結:

2023-03-08 10:08 作者:melonseeds123  | 我要投稿

一、將全部m代碼轉py后,輸出曲線結果不對

原因分析:1、函數(shù)寫錯;2、兩種語言求解精度不一樣,產(chǎn)生的誤差累積;

解決方法:

1、最開始的笨方法:逐行代碼檢查;——太浪費時間

確實發(fā)現(xiàn)一些語法的問題:主要有:

? ? ? ?1.1 np.dot(a,b,c)=np.dot(a,b):矩陣連乘用@,兩個矩陣相乘用@或np.dot;

? ? ? ?1.2 在py中a=b表示a就是b,b就是a,a變化b也變化,應改為a=b.copy()

2、采樣py調用m代碼的方式:將部分函數(shù)寫成py,部分函數(shù)仍然是m;通過調用可以檢查部分py文件是否寫錯;(結果子函數(shù)沒寫錯,最終結果就是不對)

此處采用py調用octave的形式,實現(xiàn)py調用m代碼,主要在py里安裝oct2py模塊,該模塊具體使用請參考官方文檔:打開下面連接即可;

GitHub - blink1073/oct2py: Run MFiles from Python - GNU Octave to Python bridge

注意:此種調用方式需要安裝octave軟件(開源);

綜上:是不是可以斷定結果的差異是由兩種語言之間求解精度不一樣導致的呢?

笨人確實開始這么以為的,并且逐行調試py代碼以及matlab代碼并對比,發(fā)現(xiàn)兩者之間確實存在求解精度的問題。。。。。。。


后來,細想,上面對比對象錯了呀,應該對比的是py調octave的結果 和 octave本身的求解結果,通過對比發(fā)現(xiàn),該兩者精度一致,并不存在求解精度的問題;因此,還是本身程序寫的不對;

最后,將正確的m代碼,在octave下跑,octave和matlab求解結果一致(注意:存在精度差異,但不足以影響控制效果,可忽略);在正確代碼基礎上,逐行驗證錯誤的py代碼,一個循環(huán)不行就兩個循環(huán),終于發(fā)現(xiàn)錯誤了。。。。。是個小細節(jié)的問題。






關于m代碼轉py代碼的總結:的評論 (共 條)

分享到微博請遵守國家法律
宜黄县| 横峰县| 尼勒克县| 沐川县| 张家川| 寿阳县| 南涧| 普兰县| 东平县| 白银市| 民县| 渭南市| 松溪县| 庆阳市| 靖安县| 景东| 岳池县| 彰武县| 天峨县| 大同县| 忻城县| 若羌县| 长春市| 溧阳市| 色达县| 桦川县| 福州市| 怀仁县| 大同市| 新民市| 广西| 广宁县| 武城县| 兴安盟| 叶城县| 敖汉旗| 筠连县| 德惠市| 贵阳市| 麻城市| 新河县|