我有一个矩阵要一次绘制一列。是否可以将滑块添加到 MATLAB 图(无需繁重的 GUI 编程),以便通过移动滑块,在当前轴上显示不同的列?
问问题
27080 次
2 回答
4
创建滑块的代码是合理的最少的:
uicontrol('Style', 'slider', 'Callback', @sliderCallback);
function sliderCallback(hObject, evt)
fprintf('Slider value is: %d\n', get(hObject, 'Value') );
end
您将需要查看诸如Position
、 设置图形上的位置Max
以及Min
设置可能的值范围等属性。另请注意,如果您在函数中执行此操作,sliderCallback
则可以是嵌套函数,这可能会使重绘显示变得更容易。如果您在脚本中运行它,sliderCallback
则必须在单独的文件中。
于 2013-04-12T16:50:15.810 回答
3
这是滑块绘制相应列的代码:
m = ones(5,1)*(1:5);
slmin = 1;
slmax = size(m,2);
plot(m(:,1))
hsl = uicontrol('Style','slider','Min',slmin,'Max',slmax,...
'SliderStep',[1 1]./(slmax-slmin),'Value',1,...
'Position',[20 20 200 20]);
set(hsl,'Callback',@(hObject,eventdata) plot(m(:,round(get(hObject,'Value')))) )
编辑:
为了获得更好的性能,您可以只更新YData
值:
set(hsl,'Callback',@(hObject,eventdata) ...
set(hline,'YData',m(:,round(get(hObject,'Value')))) )
要修复 y 轴限制,只需ylim([0 6])
在第一次plot
调用后手动设置它们。
于 2013-04-12T17:21:21.487 回答