MATLAB初探 | Contour函数绘制等高线

1.题目描述

点电荷 Q1 位于(-10.5,0),Q2 位于(10.5,0) ,用 Matlab 编程画出时的等电位分布。计算网格为点(-100,-100) 和(100,100)之间的正方形,网格间距为1。等电位线取值为(-0.5:0.002:0.5)。

2.Contour函数常用操作

help contour

1)contour(Z) 绘制矩阵 Z 的等高线图,其中 Z 解释为有关 x-y 平面的高度。Z 必须至少是 2×2 矩阵,该矩阵包含至少两个不同值。x 值对应于 Z 的列索引,y 值对应于 Z 的行索引。自动选择等高线层级。
2)contour(Z,n)n 个等高线层级绘制矩阵 Z 的等高线图,其中 n 为标量。自动选择等高线层级。
3)contour(Z,v) 绘制矩阵 Z 的等高线图,其中等高线位于单调递增向量 v 中指定的数据值。要在特定值位置显示单个等高线,请将 v 定义为一个二元素向量,并且两个元素都等于所需的等高线层级。例如,要在 k 层级绘制等高线,请使用 contour(Z,[k k])。指定向量 v 可将 LevelListMode 属性设置为 manual。
4)contour(X,Y,Z)contour(X,Y,Z,n)contour(X,Y,Z,v) 使用 XY 绘制 Z 的等高线图,以确定 x 和 y 值。

  • 如果 XY 为向量,则 length(X) 必须等于 size(Z,2)length(Y) 必须等于 size(Z,1)。这些向量必须是严格递增或严格递减的,并且不能包含任何重复值。
  • 如果 XY 为矩阵,则其大小必须等于 Z 的大小。通常,应设置 XY 以使列严格递增或严格递减并且行是均匀的(或者使行严格递增或严格递减并且列是均匀的)。
    如果 XY 的间距不规律,contour 将使用等间距的等高线网格计算等高线,然后转换成 XY 的数据。
    contour(...,LineSpec) 使用 LineSpec 指定的线型和颜色绘制等高线。contour 忽略标记符号。
    contour(...,Name,Value) 使用一个或多个属性名-属性值对组指定等高线属性。Name 是属性名且必须置于单引号 ('') 内。Value 是对应的值。例如,'LineWidth',2 将等高线宽度设置为 2。

5)有关等高线属性名和值的列表,请参阅 Contour 属性。

  • contour(ax,...) 将图形绘制到 ax 指定的坐标区中,而不是当前坐标区 (gca) 中。
  • [C,h] = contour(...) 返回等高线矩阵 C(包含定义等高线的数据)和 Contour 对象 h
  • Contour 对象的 ContourMatrix 属性也包含等高线矩阵。clabel 函数使用等高线矩阵标记等高线。可以使用 Contour 对象属性控制等高线图外观。

3.编程实现

x=-100:1:100;
y=-100:1:100;
[x,y]=meshgrid(x,y);
z=(1./sqrt((y-10.5).^2+x.^2)-1./sqrt((y+10.5).^2+x.^2));
contour(x,y,z,-0.5:0.002:0.5) 

4.运行结果

contour(x,y,z,-0.5:0.002:0.5)

5.扩展功能

1)显示等高线标签

contour(x,y,z,-0.5:0.002:0.5,'ShowText','on')
显然有点太多了

2)显示单条等高线
显示Z=0.004的等高线:

v=[0.004,0.004]
contour(x,y,z,v)
0.004单条等高线

你可能感兴趣的:(MATLAB初探 | Contour函数绘制等高线)