最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(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代碼的總結:的評論 (共 條)

分享到微博請遵守國家法律
桐柏县| 湘乡市| 和林格尔县| 文水县| 镶黄旗| 清徐县| 富蕴县| 黑山县| 榆树市| 吉木乃县| 平顺县| 海原县| 阜平县| 石屏县| 湄潭县| 淮滨县| 通江县| 岑巩县| 武宁县| 荥阳市| 巫溪县| 铁力市| 陇南市| 金沙县| 常山县| 长子县| 兴宁市| 赤峰市| 保德县| 开平市| 伊吾县| 治多县| 河源市| 苗栗市| 修文县| 读书| 阳春市| 固始县| 淮北市| 西乡县| 辛集市|