MATLAB GUI中colormap使用方法整理


敝人最近做了個含有三個axes並且需要是不同colormap的GUI,真是折騰夠嗆,不同版本的matlab設置方法還不一樣,我要做的程序還需要一定的兼容性,簡直是*了*了

總結如下:

對於R2015a版本的matlab設置方法最為簡單,同一個figure下設置不同colormap只需要使用:

colormap(axeshandle,'yourcolormap') 

即在函數中帶上axeshandle就好,比如colormap(handles.axes1,'hot')

對於老版本的呢~網上流傳有各種辦法,比較通用且比較好使的方法還是使用freezeColors這個函數,用的時候對每個axes都正常設置,然后加上freezeColors就好了,比如:

colormap('hot'),freezeColors

關於colormap的設置就講到這里,下面扯一點題外話:

跟freezeColor這個函數一起出現的通常還有cbfreeze這個函數,用來固定colorbar的用法比如:

colormap('hot'),freezeColors,colorbar,cbfreeze

由於我並不需要顯示colorbar所以這個函數我也沒有深究,但用的時候發現它在matlab R2015a中是用不了的,網上查了下原因原來是matlab自R2014b colorbar的數據結構就有所改變,而cbfreeze這個函數是針對之前老版本的數據結構的,故而失效。

此外,在gui中重復畫圖時需要先用cla(axeshandle)清除掉之前話的圖才行,不然會報錯,另外我上一篇隨筆中提到的那兩句話會對matlab重復畫圖造成障礙,還是刪掉為好,至於原因我也不清楚。這樣一來在2015a中直接雙擊fig文件運行GUI就容易出現問題,所以還是得先打開m文件再運行才行。最后呢,2015a中直接雙擊fig文件運行GUI時菜單欄是沒反應的,原因不明。

FYI: freezeColors.m在www.mathworks.com上可以下到


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM