Matlab 2D plot — 以二进制显示轴

Matlab 2D plot — display axis in binary

我有一个正自然数向量,我正在使用典型的 plot() 函数在 Matlab 中绘制它。这是一个示例图:

但是,我需要查看以二进制显示的向量(y 轴)。有没有办法以二进制(radix-2)更改轴显示?我尝试使用 dec2bin,但它只能将整数转换为无法绘制的字符串。

这个怎么样:

L = get(gca,'YTickLabel');
set(gca,'YTickLabel',cellfun(@(x) dec2bin(str2num(x)),L,'UniformOutput',false));

编辑:既然你想要缩放的能力,这里有一个方法可以让轴缩放:

zh = zoom(gcf);
set(zh,'ActionPreCallBack',@(source,event,s) set(gca,'YTickLabelMode','auto'))
set(zh,'ActionPostCallBack',@(source,event,s) set(gca,'YTickLabel',cellfun(@(x) dec2bin(str2num(x)),get(gca,'YTickLabel'),'UniformOutput',false)));

它在缩放前将轴重置为十进制,然后在缩放后转换回二进制。