Octave 可以通过函数句柄或定义函数的字符串来绘制函数,用户无需显式创建要绘制的数据。fplot 函数使用函数名和 x 坐标范围限制(而非 x 和 y 数据)生成具有线性轴的二维图。例如:
fplot (@sin, [-10, 10], 201);
生成的图与上图等价,但还包含一个显示所绘制函数名称的图例。
(fcn) ¶(fcn, limits) ¶(…, tol) ¶(…, n) ¶(…, fmt) ¶(…, property, value, …) ¶(hax, …) ¶[x, y] = fplot (…) ¶在 limits 定义的范围内绘制函数 fcn。
fcn 是一个函数句柄、内联函数或包含要计算的函数名称的字符串。
绘图范围的形式为 [xlo, xhi] 或 [xlo, xhi, ylo, yhi]。如果未指定范围,默认为 [-5, 5]。
接下来的三个参数都是可选的,可以按任意顺序给出任意数量的参数。
tol 是绘图使用的相对容差,默认为 2e-3(0.2%)。
n 是要使用的最小点数。当指定 n 时,最大步长为 (xhi - xlo) / n。为了满足相对容差要求,仍可能使用多于 n 个点。
fmt 参数指定绘图命令要使用的线条样式。
也可以指定多个属性-值对,但它们必须成对出现。这些参数将应用于 plot 绘制的线条对象。
线条属性的完整列表请参见 线条属性。
如果第一个参数 hax 是一个轴句柄,则绘制到此轴中,而非绘制到 gca 返回的当前轴。
如果没有输出参数,结果会立即绘制。如果有两个输出参数,则返回二维绘图数据。随后可以使用 plot (x, y) 手动绘制这些数据。
示例:
fplot (@cos, [0, 2*pi])
fplot ("[cos(x), sin(x)]", [0, 2*pi])
编程说明:
fplot 最适合处理连续函数。具有间断点的函数绘图效果可能不佳。这一限制可能会在将来移除。
当函数接受并返回向量参数时,fplot 的性能更佳。在编写用户自定义函数时请考虑这一点,并使用逐元素运算符,例如 .*、./ 等。
其他可以直接从函数创建二维图的函数包括 ezplot、ezcontour、ezcontourf 和 ezpolar。
(f) ¶(f2v) ¶(fx, fy) ¶(…, dom) ¶(…, n) ¶(hax, …) ¶h = ezplot (…) ¶绘制由函数 f 定义的二维曲线。
函数 f 可以是一个字符串、内联函数或函数句柄,且可以有一个或两个变量。如果 f 有一个变量,则在域 -2*pi < x < 2*pi 上使用 500 个点绘制该函数。
如果 f2v 是一个双变量函数,则在网格域 -2*pi <= x | y <= 2*pi 上计算隐函数 f(x,y) = 0,每个维度使用 60 个点。
例如:
ezplot (@(x, y) x.^2 - y.^2 - 1)
如果传入两个函数作为输入,则在域 -2*pi <= t <= 2*pi 上使用 500 个点绘制参数函数
x = fx (t) y = fy (t)
如果 dom 是一个二元向量,它表示 x 和 y 的最小值和最大值,或参数绘图中的 t。如果 dom 是一个四元向量,则最小值和最大值为 [xmin xmax ymin ymax]。
n 是一个标量,定义绘制函数时要使用的点数。
如果第一个参数 hax 是一个轴句柄,则绘制到此轴中,而非绘制到 gca 返回的当前轴。
可选的返回值 h 是所创建的线条对象的图形句柄向量。
另请参阅: plot、ezplot3、ezpolar、ezcontour、ezcontourf、ezmesh、ezmeshc、ezsurf、ezsurfc。
(f) ¶(…, dom) ¶(…, n) ¶(hax, …) ¶h = ezcontour (…) ¶绘制函数的等高线。
f 是一个字符串、内联函数或函数句柄,带有两个参数来定义函数。默认情况下,在网格域 -2*pi <= x | y <= 2*pi 上绘图,每个维度使用 60 个点。
如果 dom 是一个二元向量,它表示 x 和 y 的最小值和最大值。如果 dom 是一个四元向量,则最小值和最大值为 [xmin xmax ymin ymax]。
n 是一个标量,定义每个维度要使用的点数。
如果第一个参数 hax 是一个轴句柄,则绘制到此轴中,而非绘制到 gca 返回的当前轴。
可选的返回值 h 是所创建绘图的图形句柄。
示例:
f = @(x,y) sqrt (abs (x .* y)) ./ (1 + x.^2 + y.^2); ezcontour (f, [-3, 3]);
另请参阅: contour、ezcontourf、ezplot、ezmeshc、ezsurfc。
(f) ¶(…, dom) ¶(…, n) ¶(hax, …) ¶h = ezcontourf (…) ¶绘制函数的填充等高线。
f 是一个字符串、内联函数或函数句柄,带有两个参数来定义函数。默认情况下,在网格域 -2*pi <= x | y <= 2*pi 上绘图,每个维度使用 60 个点。
如果 dom 是一个二元向量,它表示 x 和 y 的最小值和最大值。如果 dom 是一个四元向量,则最小值和最大值为 [xmin xmax ymin ymax]。
n 是一个标量,定义每个维度要使用的点数。
如果第一个参数 hax 是一个轴句柄,则绘制到此轴中,而非绘制到 gca 返回的当前轴。
可选的返回值 h 是所创建绘图的图形句柄。
示例:
f = @(x,y) sqrt (abs (x .* y)) ./ (1 + x.^2 + y.^2); ezcontourf (f, [-3, 3]);
(f) ¶(…, dom) ¶(…, n) ¶(hax, …) ¶h = ezpolar (…) ¶在极坐标中绘制二维函数。
函数 f 是一个字符串、内联函数或带有一个参数的函数句柄。函数的预期形式为 rho = f(theta)。默认情况下,在域 0 <= theta <= 2*pi 上使用 500 个点绘图。
如果 dom 是一个二元向量,它表示 theta 的最小值和最大值。
n 是一个标量,定义绘制函数时要使用的点数。
如果第一个参数 hax 是一个轴句柄,则绘制到此轴中,而非绘制到 gca 返回的当前轴。
可选的返回值 h 是所创建绘图的图形句柄。
示例:
ezpolar (@(t) sin (5/4 * t), [0, 8*pi]);