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