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

歡迎光臨散文網(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ó)家法律
泾源县| 新余市| 镇巴县| 汉中市| 长宁县| 保定市| 安远县| 金寨县| 克什克腾旗| 龙里县| 铁岭县| 民乐县| 梅州市| 获嘉县| 三台县| 海原县| 大新县| 同心县| 象州县| 彰化市| 岢岚县| 库伦旗| 牙克石市| 绥滨县| 拉孜县| 平谷区| 行唐县| 张家川| 伊宁县| 札达县| 彝良县| 正宁县| 思南县| 黔江区| 佛冈县| 汉寿县| 依兰县| 诏安县| 宕昌县| 儋州市| 涡阳县|