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

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

MATLAB進(jìn)行程序設(shè)計(jì)如何省時(shí)高效少出錯(cuò)

2023-06-24 22:30 作者:大一_新生  | 我要投稿

同:https://zhuanlan.zhihu.com/p/639245203

利用MATLAB進(jìn)行科研程序設(shè)計(jì)的注意點(diǎn)

最近利用MATLAB腳本進(jìn)行了機(jī)器人相關(guān)程序的編寫,因?yàn)檫@個(gè)經(jīng)驗(yàn)不足,走了比較多的彎路

剛開始有了思路就埋頭猛寫代碼,寫著寫著覺得差不多了,憑感覺編個(gè)函數(shù),結(jié)果寫完之后一運(yùn)行結(jié)果錯(cuò)了?。?!

然后回頭一看

  • 變量命名很亂很隨意,不知道這個(gè)變量是干什么的?

  • 中間過程中比較重要的變量沒有進(jìn)行保存,函數(shù)的輸出是一些不重要的變量

  • 想要測(cè)試一下某個(gè)變量和預(yù)期符不符合,再拿出來單獨(dú)寫測(cè)試函數(shù)

  • 好不容易發(fā)現(xiàn)了某個(gè)功能的錯(cuò)誤,修改了這個(gè)錯(cuò)誤,結(jié)果發(fā)現(xiàn)還有別的地方也使用了類似的功能也錯(cuò)誤了

  • 試探性的修改程序的錯(cuò)誤,修改了其中一處,結(jié)果錯(cuò)誤,然后又開始修改另一處導(dǎo)致最后也不知道是哪出錯(cuò)了

有一些感悟或者是技巧現(xiàn)在記錄下來,希望以后可以提高編寫程序的效率,減少出錯(cuò)的概率。

以后也會(huì)分享機(jī)器人相關(guān)方面知識(shí),歡迎關(guān)注 Winter

前期思路

最開始的時(shí)候要構(gòu)建好程序的大綱,這個(gè)是最為重要的,花的時(shí)間再多也不為過,可以用一些思維導(dǎo)圖工具輔助

程序分幾個(gè)

首先大題構(gòu)建一下這個(gè)程序要干什么?想清楚之后大概考慮一下這個(gè)矩陣的運(yùn)算量,對(duì)于我來說就是有一個(gè)矩陣求逆,這個(gè)矩陣求逆是比較花費(fèi)時(shí)間的,所以我進(jìn)行了第1個(gè)判斷

這個(gè)程序并不是一個(gè),分為兩個(gè)大的程序,前一段要保存運(yùn)算量大的結(jié)果,后一段再繼續(xù)進(jìn)行

  • 好處:因?yàn)榕苣且欢问窍喈?dāng)花費(fèi)時(shí)間的,如果因?yàn)椴僮鞑恍⌒模袛嘁幌鲁绦蚧蛘哒f不小心崩潰了,那又要重新計(jì)算,只要保存了這個(gè)結(jié)果的話,我們后續(xù)的那一段會(huì)相當(dāng)快

  • 結(jié)果:我現(xiàn)在明確了程序的兩個(gè)部分,第1部分花費(fèi)時(shí)間得出最重要的結(jié)果,第2部分只要對(duì)結(jié)果進(jìn)行一些畫圖處理就行

調(diào)用函數(shù)設(shè)計(jì)

有了程序就必須要確定調(diào)用的函數(shù),函數(shù)的劃分要注意以下幾個(gè)點(diǎn)

1.考慮功能劃分:對(duì)于如何劃分函數(shù)?其中的一個(gè)因素就是根據(jù)功能來劃分,要想清楚程序過程中功能復(fù)用性比較高的部分,把這一部分包裝成函數(shù)

  • 好處1:程序易于閱讀,這肯定不必多講

  • 好處2:一旦你發(fā)現(xiàn)這個(gè)函數(shù)有任何的錯(cuò)誤,你只需要修改這個(gè)函數(shù),如果你有一個(gè)類似的功能,但被你劃分成兩個(gè)函數(shù),那你一旦這個(gè)功能出現(xiàn)錯(cuò)誤,你兩個(gè)函數(shù)都要改,有時(shí)候你會(huì)出現(xiàn),只修改一個(gè)而忘記修改另一個(gè)的情況

2. 考慮端口(輸入輸出)劃分:我們?cè)谠O(shè)計(jì)函數(shù)的時(shí)候,最重要的考慮的是它的輸入和輸出分別是什么,那我們就要針對(duì)重要的輸入輸出進(jìn)行函數(shù)設(shè)計(jì)

  • 注意:如果函數(shù)過小,那么函數(shù)的數(shù)量就會(huì)比較多,中間會(huì)有一些不重要的變量干擾閱讀

  • 好處:合適的端口劃分,會(huì)使得你輸出的變量是容易用來測(cè)試是否正確的,

  • 測(cè)試:寫完這個(gè)程序,我們就要對(duì)這個(gè)程序進(jìn)行測(cè)試,因?yàn)楹竺孢€會(huì)用到這個(gè)程序,如果錯(cuò)了的話會(huì)引發(fā)一連串的錯(cuò)誤,而如果這個(gè)函數(shù)正確的話,我們就可以放心的使用它,在它的基礎(chǔ)上再包裝其他的函數(shù)

3. 設(shè)計(jì)好函數(shù)功能接下來,進(jìn)行命名->編寫->測(cè)試->拼接->完成主程序

變量、函數(shù)命名

  • 這個(gè)命名要符合他物理的含義,就是你看到名字就能知道他是干什么的

  • 對(duì)于變量和函數(shù)這兩個(gè)命名要區(qū)分開,可以使用首字母大寫來進(jìn)行變量?jī)?nèi)容,利用下劃線分割來命名函數(shù)

最后的小tips

  • 當(dāng)你分了兩個(gè)或者多個(gè)執(zhí)行程序之后,就意味著這個(gè)執(zhí)行程序需要跟前面后面進(jìn)行交互,那么就會(huì)輸入輸出變量進(jìn)行保存,這個(gè)輸入輸出變量要放在程序的最開始和最結(jié)尾,不要在中間或者說函數(shù)的里面load加載一個(gè)變量,如果上一個(gè)程序的輸出變量需要更改的話,你還需要進(jìn)入到這個(gè)程序或者函數(shù)的里面去改這個(gè)變量很麻煩

  • 進(jìn)行中間小變量的輸出,有利于查看問題出在哪里

  • 單獨(dú)有一個(gè)測(cè)試模塊,對(duì)前面每寫一個(gè)函數(shù)都要進(jìn)行測(cè)試功能是否符合預(yù)期

  • 注意版本更新,對(duì)于我沒有必要用github的版本迭代,我會(huì)每次準(zhǔn)備改都備份一下,然后寫一個(gè)記事本,這次的版本特點(diǎn),然后下一次打算進(jìn)行哪方面的更改

如果你有哪些編程方面走的彎路然后得到了哪些小技巧,歡迎評(píng)論分享


MATLAB進(jìn)行程序設(shè)計(jì)如何省時(shí)高效少出錯(cuò)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
芜湖市| 钟山县| 瓦房店市| 德格县| 北流市| 阳高县| 和顺县| 五常市| 岳阳市| 榆林市| 永昌县| 会东县| 平安县| 新巴尔虎右旗| 锡林郭勒盟| 繁峙县| 台北县| 忻州市| 千阳县| 临武县| 德江县| 沧州市| 玉溪市| 中牟县| 辰溪县| 旺苍县| 仙居县| 宜城市| 舞钢市| 当涂县| 辽中县| 增城市| 商水县| 平阴县| 绍兴县| 克什克腾旗| 巴南区| 阳高县| 芮城县| 武乡县| 石家庄市|