2013-12-12 90 views
1

我在Matlab上遇到了一個奇怪的行爲。我想用一個可變參數在3D中繪製一個簡單的曲面。添加滑塊刪除工具欄

簡單的例子:

param = 0.5; 
[x,y]=meshgrid(linspace(-1,1,10),linspace(-1,1,10)); 
z = param*x./y; 
surf(x,y,z); 

我得到一個經典的3D畫面:http://i.imgur.com/2KrnWeH.png

現在我想對我的身材添加滑塊直接控制參數的值:

function test() 
    figHandle=figure; 
    param = 0.5; 
    [x,y]=meshgrid(linspace(-1,1,10),linspace(-1,1,10)); 
    z = param*x./y; 
    surfacePlotted = surf(x,y,z); 

    sliderPosition=[10 400 200 20]; 

    hsl = uicontrol('Style','slider','Min',-2,'Max',2,'SliderStep',[1 1]./(10),'Value',param,'Position',sliderPosition,'Callback',{@updatePlot,surfacePlotted}); 
end 

function updatePlot(hObject,~,eventdata) 
    surfacePlotted=eventdata; 
    param = get(hObject,'Value'); 
    x=get(surfacePlotted,'XData'); 
    y=get(surfacePlotted,'YData'); 
    z = param*x./y; 
    set(surfacePlotted,'ZData',z); 
end 

我得到一個不錯的滑塊,我可以點擊它來修改參數:http://i.imgur.com/TqkMSmH.png i.imgur.com/i9xablF.png(第二p icture與其他位置的幻燈片

然而主菜單欄是不在這裏了,尤其是「盤」圖標,這讓我在3D操作的身影。

我想我的滑塊定義

uicontrol('MenuBar','figure'); 

後手動將其添加,我也試過:

set(figHandle, 'MenuBar', 'figure'); 

沒有成功爲止。

任何人都已經encoutered這個問題,並發現周圍的工作?或者我只是想念一些簡單的東西?

謝謝:)

編輯:編輯後的圖片鏈接,我把一個對它們進行管理

+0

By它是工具欄而不是菜單欄的方式。 – pm89

回答