matlab如何创建callback函数_如何学好MATLAB GUI
差不多有一個月的時間沒有寫一些總結(jié)了,所以今天打算聊聊之前寫的幾篇文章。
8月可以說是我的GUI月,因為發(fā)的4篇文章,全是關(guān)于GUI的。
這可能就是我寫文章的一個陋習(xí),寫起GUI就是連著好幾篇,寫爬蟲,寫汽車也是如此。
在上周發(fā)了一篇關(guān)于GUI文件拖拽讀取的文章之后,其實后臺收到不少留言。
其中有一條留言是:
“要什么GUI啊,難道不該自動遍歷指定路徑尋找符合要求的文件么,GUI是程序員寫給不會寫代碼的人用的玩意……”
如果不回應(yīng)這條留言,那么今天我所聊的事,多少顯得沒有意義。相信不少剛關(guān)注這個公眾號的朋友也會有類似的問題,為什么要寫GUI。
我推薦一篇我在去年9月份寫的文章,“我為什么寫GUI”,有興趣的朋友可以讀一讀。
文章鏈接:?我為什么寫GUI
回到這篇文章的主題上來,如何學(xué)好MATLAB GUI,我將會用8月份的這4篇文章為例子,給大家介紹3種提升GUI能力的方法。
01
多研究其他軟件
GUI入門其實是一件非常簡單的事。
8月的GUI實戰(zhàn)訓(xùn)練營,已經(jīng)是我今年舉辦的第二次關(guān)于GUI的實戰(zhàn)訓(xùn)練。
毫不夸張的說,所有參與實戰(zhàn)訓(xùn)練的朋友,基本上不超過3天就能獨立掌握用m腳本制作GUI工具。
但是,真正想要把GUI學(xué)好,并不是一件容易的事。
寫GUI有點像學(xué)生時代寫作文,如果你沒有足夠的閱讀量,即使你每周堅持寫上萬把字,估計效果都很難令人滿意。
GUI也同樣如此
如果你沒有研究過足夠多的優(yōu)秀軟件,沒有花心思思考其中的細節(jié),沒有幻想過這些細節(jié)在GUI中會是什么樣子,最后也沒有為了在GUI中復(fù)現(xiàn)功能而廢寢忘食,很遺憾,你并沒有體會到GUI的樂趣
GUI最迷人的地方在于,按鈕可以是按鈕,也可以不是按鈕。
不同的控件組合在一起,通過各種callback,ButtonDownFcn,KeyPressFcn可以有無數(shù)種可能性。
比如我之前發(fā)布的一篇關(guān)于MATLAB如何通過拖拽文件進行數(shù)據(jù)讀取
文章鏈接:?我被自己的這波操作蠢哭了……
文章寫作手法是一回事,但是大家仔細代入到情景中去理解我的需求,你大概也就能明白,為什么我要寫這樣一個功能。
我有為此刻意去用過很多軟件,很多網(wǎng)頁,去嘗試文件拖拽到界面,去搜索功能實現(xiàn)的原理。
還有一個對我來說非常重要的經(jīng)歷是,我在寫HaoEngineering這款工具集時,其實我花了很多時間在研究有道詞典上。
我就在琢磨有道詞典的搜索欄,灰體的提示詞,點擊自動清空,回車觸發(fā)搜索……這一系列很自然的使用習(xí)慣。
可是當我把這些功能和GUI聯(lián)系起來時,我發(fā)現(xiàn)一點都不容易。
而最后終于廢了九牛二虎之力寫完這些功能,覺得自己面前的這款GUI才真正能稱之為工具。
02
深入探索功能
平時經(jīng)常用MATLAB處理Excel數(shù)據(jù)的朋友,我相信, xlsread和xlswrite這兩個函數(shù)對你們來說非常熟悉。
而與此相關(guān)的帖子在網(wǎng)絡(luò)上也到處都是。不過這兩個函數(shù)只局限在數(shù)據(jù)文本的讀寫。
如果大家再稍有好奇心再希望偷懶一些,就會開始考慮MATLAB是否可以設(shè)置Excel中單元格字體顏色等等,這里就要考慮調(diào)用Excel.Application。
一年前,我為了實現(xiàn)快速生成Excel模板代碼,于是寫了HaoTemplate。
HaoTemplate最重要的一個功能是,根據(jù)現(xiàn)有的Excel模板,將它轉(zhuǎn)換成模板代碼。
既然MATLAB可以調(diào)用Excel.Application對字體顏色進行設(shè)置,那么MATLAB是否可以創(chuàng)建Chart圖表?
于是上個月,我寫了一個HaoPlot的功能,可以實現(xiàn)快速在MATLAB環(huán)境下生成Excel的圖表進行再處理。
文章鏈接:?MATLAB的plot,一點也不酷!
MATLAB與Excel交互這方面的例子,除了生成圖表之外,還可以設(shè)置“格式條件”對數(shù)據(jù)進行一個更為高效的處理。
文章鏈接:?被一位大二學(xué)生啪啪打臉的經(jīng)歷
從整個過程來看,其實用MATLAB來處理Excel是一個再普通不過的需求,但是更重要的是,你有沒有在基礎(chǔ)的功能上再深入去探索。
當你花足夠多的時間去研究MATLAB Excel交互這個問題,最后你會發(fā)現(xiàn)所有的需求都不再有難度,只需要通過錄制宏再進行代碼改寫就能實現(xiàn)。
所以,再小一塊知識點也能玩出花來,也可以掌握許多不一樣的技巧。
時常保持好奇心與“惰性”,多深入探索拓展功能
03
知識的系統(tǒng)性
無論是之前寫的關(guān)于自學(xué)的文章,還是平時一些朋友發(fā)私信問我如何入門,我基本上不太推薦工具書。
主要是因為工具書的內(nèi)容太全面太系統(tǒng)了,如果只是想入門MATLAB的話,死啃工具書反而容易感覺枯燥而失去對編程的樂趣。
因此,我只會建議大家?guī)е枨髱е鴨栴}去網(wǎng)上查找解決問題的答案,盡快實現(xiàn)自己所需要的功能。
不過,“學(xué)好”和“入門”并不是一回事。
要學(xué)好MATLAB GUI,知識的系統(tǒng)性很重要。
雖然一招鮮在大部分時候都非常管用,但是偶爾碰到比較少見奇特的問題與需求時,如果你平時有系統(tǒng)地總結(jié)某一類問題與解決方案,往往這時候就不再需要花太多精力在這類問題上。
比如8月份我寫的一篇關(guān)于MATLAB顏色設(shè)置的文章
文章鏈接:?與MATLAB顏色設(shè)置斗智斗勇的那些年
這篇文章總結(jié)了我從開始學(xué)MATLAB到目前碰到的所有與顏色設(shè)置有關(guān)的問題的經(jīng)歷。從最開始的通過縮寫字母設(shè)置顏色,再到RGB數(shù)值設(shè)置顏色,再到目前通過自己開發(fā)的GUI選取顏色,同時還介紹了MATLAB自帶的顏色選取器。
再比如8月份的另一篇文章關(guān)于文件選取的問題。
文章鏈接:?我被自己的這波操作蠢哭了……
就有朋友留言問我,是不是為了介紹文件拖拽選取的功能,而刻意杜撰了前面的兩種情景。
其實,一直關(guān)注這個公眾號的朋友應(yīng)該清楚,我在寫公眾號關(guān)于高效這方面題材的時候,從來不靠杜撰來強行創(chuàng)造需求。
這些問題都是我在工作過程中實實在在遇到的問題,而且我相信有朋友會碰到同樣的問題,所以這篇文章寫的才有意義。
在這篇文章中,我介紹了三種不同的文件選取模式,分別通過輸入路徑,MATLAB自帶的文件選取器,以及通過Java Swing實現(xiàn)的拖拽選取的功能。
再往遠了說,我曾經(jīng)還總結(jié)過,MATLAB在結(jié)束運算后如何通知你的幾種方式
文章鏈接:?如何讓MATLAB在完成計算后通知你
在這篇文章中我總結(jié)了如何用MATLAB實現(xiàn)聲音,消息框,圖片,郵件,微信等方式通知你。
總的來說,對于MATLAB GUI的進階學(xué)習(xí),我給大家的建議是:
- 平時多花一些時間在研究其他軟件或APP上,拓展一下想象力,實現(xiàn)功能Concept的積累
- 保持好奇心,對已掌握的技能進行深入探索,拓展功能的可能性
- 對曾經(jīng)遇到的問題與解決方案進行系統(tǒng)的總結(jié),今后解決的不再是一個問題,而是一類問題
以上就是今天關(guān)于如何學(xué)好MATLAB GUI的總結(jié)分享,希望這篇文章對大家的GUI學(xué)習(xí)有所幫助。
作者介紹|打浦橋程序員
汽車行業(yè)工程師
目前在德國從事系統(tǒng)工程
和你一起用MATLAB的角度看世界
總結(jié)
以上是生活随笔為你收集整理的matlab如何创建callback函数_如何学好MATLAB GUI的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ROG 魔方幻“月曜白”路由器今晚开卖,
- 下一篇: python 廖雪峰数据分析统计服_廖雪