如何用matlab绘制浮点系统

How to plot floating point system with matlab

考虑一个以 3 为底、精度为 3 且 -1 <= e <= 1 的标准化浮点系统。 由于手动绘制的点太多,我如何将系统中的所有数字绘制在以 10 为底的实轴上,并且数字可以用 MATLAB 精确表达?谢谢你。

此解决方案还包括 次正常 值。我不确定你是否想包括这些。

close all
figure
hold on

base = 3;
prec = 3;

maxval = base ^ prec - 1;
mantissas = (-maxval: maxval) / (maxval + 1)

for expo = -prec: prec
    nums = mantissas * base ^ expo;
    plot(nums, 0, 'b.')
end

此外,这可能不符合精确的条件。 MATLAB最终将所有浮点值转换为二进制。然后,它在具有离散像素位置的屏幕上绘制。我认为没有任何东西可以克服这些限制。

编辑

用10进制测试后,我发现了一个差一错误。 mantissas 应除以 (maxval + 1) 而不是 maxval