我在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(带幻灯片其他位置的第二张图片
然而,主菜单栏不再在这里,特别是“Pan”图标,它允许我在3D中操纵图形。
我尝试在滑块定义
后手动添加它uicontrol('MenuBar','figure');
我也试过了:
set(figHandle, 'MenuBar', 'figure');
到目前为止没有成功。
任何人都已经遇到过这个问题并找到了解决方法吗?或者我只是简单地错过了一些东西?
谢谢:)
编辑:编辑过的图片链接,我把它们用来管理它们
答案 0 :(得分:0)
这是在Yair的网站(undocumentedmatlab)中提到的:
uicontrol side-effect: removing figure toolbar
您只需将此行添加到您的代码中:
set(figHandle,'toolbar','figure');