contour_contour -函数简介
函数功能:在MATLAB中,该函数用于绘制矩阵的等高线。语法格式:
contour(Z)
绘制矩阵Z的等高线。在这里Z表示距X-Y平面的高度。Z必须至少是一个2行2列的矩阵,且矩阵中至少包含两个不等的数值。MATLAB会根据Z中最小值和最大值自动确定等高线的条数和等高线的值。绘图区间的x、y轴范围分别为:[1:m]、[1:n]。其中[m, n] = size(Z),m表示Z的行数,n表示Z的列数。
contour(Z,n)
这里n指定了等高线的条数。
contour(Z,v)
其中v(meansvector)中数据指定了要在哪些数据处绘制等高线。因此,这种调用格式将绘制出length(v)条等高线。如果只想在高度i处画一条等高线, 使用countour(Z, [i i])。
contour(X,Y,Z)
contour(X,Y,Z,n)
contour(X,Y,Z,v)
这三种调用格式, 绘制的等高线被限定在由X、Y指定的区域内。X、Y和Z必须是同行同列的,且其中元素必须是递增的。
contour(...,LineSpec)
使用LineSpec指定的线型和颜色来绘制等高线。
contour(axes_handle,...)
该种格式可以使我们不在当前坐标系中绘制等高线,axes_handle指定了一个坐标系句柄,等高线将被绘制在这个坐标系中。
[C,h] = contour(...)
相关函数:clabel, contourf, contour3, contourc,quiver
contour_contour -程序示例
示例一:v = -0.5:0.05:0.5;
[x, y] = meshgrid(v);
z = sqrt(1.0 - x.^2 - y.^2);
[dx, dy] = gradient(z, .2, .2);
mesh(x,y,z);
hold on;
contour(v, v, z, 10),quiver(v,v,dx,dy);
hold off;
示例二:
close all; clear; clc;
% 在二维平面上绘制一个正电荷的电场线图。
k = 8.9875e+9; % 比例系数
e = 1.602e-19; % 一个电子带电量绝对值
e_r = 2.8e-15; % 电子的半径
ke = k .* e; % k by e
% 指定区间: d=<=d,并生成网格数据
d = -e_r*40:e_r:e_r*40;
[x, y] = meshgrid(d);
% 计算电位
V_max = ke / e_r; % 正电荷的表面电势最大,无穷远处电势为0
V = ke ./ sqrt(x.^2 + y.^2);
V(V==Inf) = V_max;
V(V>V_max) = V_max;
% 求电势的梯度,即电场强度
[E_x, E_y] = gradient(-V);
% 绘制电场线分布
t = 0:2*pi/20:2*pi;
sx = e_r * cos(t);
sy = e_r * sin(t);
hold on;
plot(0, 0, 'ro', 0,0, 'r+'); % 标出正电荷
streamline(x, y, E_x, E_y, sx, sy);
contour(x, y, V,linspace(min(V(:)), max(V(:)), 60));
axis([min(d), max(d), min(d), max(d)]);
hold off;,y>