在轴轴对数刻度上的两个点之间的视觉中间

Ste*_*her 5 math matlab

以下情节显示了我的问题:

在此输入图像描述

我想在1e-1和1e-2之间添加一条线.所以我想(1e-1 + 1e-2)/ 2.

但对于不是"中途"的对数标度.

在这种情况下,如何计算这些或任意两点之间的"视觉"中间值?使用的代码是

clc; clear all;
y = logspace(-3,0,100);
x = y;
semilogx(y,x);
hold on
plot([1e-1 1e-1],get(gca,'YLim'),'k--'); 
plot([1e-2 1e-2],get(gca,'YLim'),'k--');

midway = (1e-1+1e-2)/2;

plot([midway midway],get(gca,'YLim'),'k--');
Run Code Online (Sandbox Code Playgroud)

谢谢

Dan*_*iel 8

a=1e-2
b=1e-1
midway = exp((log(a)+log(b))/2)
Run Code Online (Sandbox Code Playgroud)

记录日志以获取对数刻度的位置,然后进行数学计算.

你可以简化那个公式,你最终会得到一个几何平均值:

midway=sqrt(a*b)
Run Code Online (Sandbox Code Playgroud)

  • @SteveHatcher实际上,`logspace(-1, -2, 3)`会在中间给出所需的值 (2认同)