轮廓函数中的“VN”可选参数代表什么?

时间:2017-09-28 15:46:08

标签: matlab octave matlab-figure contour

它的文档很少(在contourc函数中):

  

VN或者是表示要计算的行数的标量,或者是包含行值的向量。如果只需要一个值,请设置'VN = [val, val]';如果省略VN,则默认为10

我尝试了几个例子,它以某种方式影响了轮廓周围的线条数量 它是否表示我的函数的斜率是多么平滑? VN代表什么?

1 个答案:

答案 0 :(得分:1)

说明

contourc功能不会更改您的data。它只是绘制它们。使用VN参数,您可以控制在您正在绘制的地形/函数的最高点和最低点之间创建的轮廓线数量。

如果将VN设置为标量整数值,则直接指定行数。 VN=20会在地形的最高点和最低点之间创建20个等级。

如果指定值向量,则可以精确控制data生成轮廓线的值。您应该注意值在min(data(:))max(data(:))之间。否则不会绘制线条。示例VN=linspace(min(data(:)),max(data(:)),10)将创建与未指定VN完全相同的轮廓线。

实施例

为了说明VN参数的影响,我在这里给出一些例子。我使用contour函数直接绘制线条而不是仅使用contourc计算它们,但效果是相同的。

% Create coordinate grid
[x,y]=meshgrid(-2:0.1:2,-2:0.1:2);
% define a contour function
z=x.^2 + 2*y.^3;
% create a figure
figure();
% plot contour
contour(x,y,z);
% make axis iso scaled
axis equal

示例1

使用不带VN参数的contour命令会产生以下结果

contour(x,y,z);

<code>contour(x,y,z)</code>

实施例2:VN = 50

将VN设置为50     轮廓(X,Y,Z,50);

<code>contour(x,y,z,50)</code>

实施例3:VN =载体

此处使用明确将VN设置为轮廓值向量来将轮廓线限制为相当窄的z数据范围:

contour(x,y,z,linspace(-0.5,0.5,10));

<code>contour(x,y,z,linspace(-0.5,0.5,10))</code>