matlab - 如何在 semilogx 图中绘制 x=0?

标签 matlab matlab-figure logarithm

我需要使用 semilogx(x,y) 绘制图表。我有x=[0 1 2 ... 10 15 20 30 50 75 100] 。问题是 MATLAB 不绘制 x=0 ,我理解是因为 log(0)=undef 。那么 MATLAB 中还有另一种方法来传播我的观点吗?因为使用线性比例会将所有第一个点压缩到图表宽度的 1/10 内!

最佳答案

通常,在这种情况下所做的是将 1 添加到所有 x 中,因此第一个值(最初为 0)出现在所有值的原点和反向变换都是相同的。您可以添加 1 之外的任何其他小值,并获得类似的结果。但是,您不想添加一个小的值(例如eps),因为这样您与下一个值的距离就会很大,这将导致所有其他要打包在图表右侧的值。

让我们看一个例子:

x = [0 logspace(0,2,5)];
% x =  0    1    3.1623    10    31.623    100
y = 2.*(x+1); % add 1 to all x
semilogx(x+1,y,'o','markerfacecolor','b') 

small value

如果将 0 替换为 eps,则会得到:

x = [0 logspace(0,2,5)];
y = 2.*(x+eps); % add a tiny value too all x
semilogx(x+eps,y,'o','markerfacecolor','b')

eps

关于matlab - 如何在 semilogx 图中绘制 x=0?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44680134/

相关文章:

matlab - 如何切割现有的 3D 表面网格以使用对称性

matlab - 当使用计时器对象花费的时间超过指定的秒数时,如何在 MATLAB 中停止脚本?

matlab - 如何为 MATLAB errorbar plot 的点和垂直线设置不同的图例?

function - 如何在spark/scala中重新调整移动中心的数字范围?

javascript - 创建具有最小值、最大值和离散值的对数刻度 "steps"

matlab - 在 MATLAB 中向量化 for 循环

matlab - 填充曲线下方 x 轴上方的区域

linux - 在 MATLAB 和 Octave 中更改罗盘轴

matlab - 如何隐藏y轴?

algorithm - 通过日志处理小概率