将滑块添加到热图 - MATLAB

时间:2021-02-02 14:04:47

标签: matlab slider heatmap

我正在处理一个 3D double,我想逐片可视化。 为此,我尝试绘制热图,然后添加一个滑块来选择第三维的索引。 但是,我收到以下错误: DummyObject

重现我的问题的最小示例:

Error using uislider (line XX) HeatmapChart cannot be a parent.

实际上是否有在热图上使用滑块的方法/解决方法? 谢谢!

1 个答案:

答案 0 :(得分:2)

有。但我认为您不能为此使用 uislider。试试:

h = heatmap(img(:,:,1));
uicontrol('Style','slider');

这个滑块有类似的功能,但看起来不太好。您仍然可以定义 Min、Max、Color 等,并实现回调函数。

最后它可能看起来像:

h = heatmap(img(:,:,1));
uicontrol('Style','slider','Value',1,'Min',1,'Max',size(img,3),...
          'SliderStep',[0.5 0.5],'CallBack',{@SlideThroughSlices,img})

function SlideThroughSlices(slider,~,img)

   heatmap(img(:,:,slider.Value));

end

假设img的第三维尺寸为3,否则需要调整Min、Max和SliderStep。