MATLAB 对数图

Ammar Ali 2024年2月15日
  1. 在 MATLAB 中使用 loglog() 函数进行对数图
  2. 在 MATLAB 中使用 semilogx() 函数进行对数图
  3. 在 MATLAB 中使用 semilogy() 函数进行对数图
MATLAB 对数图

在本教程中,我们将讨论如何使用 MATLAB 中的 loglog()semilogx()semilogy() 函数以对数比例绘制变量。

在 MATLAB 中使用 loglog() 函数进行对数图

如果要在 x 轴和 y 轴上以 10 为底的对数刻度绘制变量,则可以使用 loglog() 函数。请参见下面的代码。

a = logspace(0,10);
b = 3.^a;
loglog(a,b)
grid on

输出:

使用 loglog()函数的 Matlab 对数图

在上图中,你可以看到两个轴都以 10 为底的对数刻度。你还可以使用不同的线型、标记和颜色来更改图形。例如,让我们用不同的属性再次绘制上述变量。请参见下面的代码。

a = logspace(0,10);
b = 3.^a;
loglog(a,b,'-ok','LineWidth',3)
grid on
axis tight

输出:

使用 loglog()函数的 Matlab 对数图-2

在上面的代码中,我们以 10 为底的对数刻度绘制变量,其线宽为 3,带有圆圈标记和黑色。你还可以在 loglog() 函数中更改其他属性,例如标记大小,标记边缘颜色,标记面颜色。你也可以在同一图形上绘制多个变量。例如,让我们在上图中绘制另一个具有不同颜色和标记的变量。请参见下面的代码。

a = logspace(0,10);
b = 3.^a;
c =1./b;
lg = loglog(a,b,a,c,'--dg','LineWidth',3)
grid on
axis tight
lg(1).Color = 'r';

输出:

使用 loglog()函数的 Matlab 对数图-3

你还可以使用 legend() 函数在图上添加图例,以提及哪个图属于哪个变量。请参见下面的代码。

a = logspace(0,10);
b = 3.^a;
c =1./b;
lg = loglog(a,b,a,c,'--dg','LineWidth',3)
grid on
axis tight
lg(1).Color = 'r';
legend('Variable1','Variable2','Location','east')

输出:

使用 loglog()函数的 Matlab 对数图-4

你也可以使用 loglog() 函数绘制矩阵。在矩阵情况下,每列将绘制为同一变量,并在同一图上显示为不同的颜色。请参见下面的代码。

a = 1:10;
b = 2*a;
c = 3*a;
mat = [a;b;c];
lg = loglog(mat)
grid on
axis tight

输出:

使用 loglog()函数的 Matlab 对数图-5

在上面的代码中,我们绘制了一个包含 10 列的矩阵。从图中可以看到,有 10 行,每列一行。

在 MATLAB 中使用 semilogx() 函数进行对数图

如果要在以 10 为底的对数刻度的 x 轴和线性刻度的 y 轴上绘制变量。你可以使用 semilogx() 函数。请参见下面的代码。

a = 1:100;
b = 2*a;
lg = semilogx(a,b)
grid on
axis tight

输出:

使用 semilogx()函数的 Matlab 对数图

在上图中,只有 x 轴位于以 10 为底的对数刻度中。你还可以使用与 loglog() 函数。你也可以使用 legend() 函数将图例添加到绘图中。

在 MATLAB 中使用 semilogy() 函数进行对数图

如果要在以 10 为底的对数刻度的 y 轴和线性刻度的 x 轴上绘制变量。你可以使用 semilogy() 函数。请参见下面的代码。

a = 1:100;
b = 2*a;
lg = semilogy(a,b)
grid on
axis tight

输出:

使用 Semilogx()函数的 Matlab 对数图

在上图中,你只能看到 y 轴位于以 10 为底的对数刻度中。

作者: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook

相关文章 - MATLAB Plot