敝人最近做了個含有三個axes並且需要是不同colormap的GUI,真是折騰夠嗆,不同版本的matlab設置方法還不一樣,我要做的程式還需要一定的相容性,簡直是*了*了 總結如下: 對於R2015a版本的matlab設置方法最為簡單,同一個figure下設置不同colormap只需要使用: col ...
敝人最近做了個含有三個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上可以下到