将滑块添加到热图 - MATLAB

Adding slider to heatmap - MATLAB

我正在处理一个 3D 替身,我想逐个切片地对其进行可视化。 为此,我尝试绘制热图,然后将滑块添加到 select 三维索引。 但是,我收到以下错误: Error using uislider (line XX) HeatmapChart cannot be a parent.

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

% Generate dummy 3d array
img = ones(5,4,3);
for ii=1:size(img,3)
    img(:,:,ii)=ii;
end
% Try plotting heatmap with slider
h = heatmap(img(:,:,1));
uislider(h)

实际上 way/workaround 在热图上使用滑块吗? 谢谢!

有。但我认为你不能为此使用 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