二维曲线
MATLAB绘图
通过本章节学习,需要掌握以下内容:
- 掌握MATLAB语言中二维曲线的制作
- 掌握绘制图形中的辅助工具操作
- 掌握MATLAB语言中三维曲线、三维曲面的内容
- 学会交互式绘图工具和图形修饰
4.1二维曲线
使数据可视化,直观展示数据的内在规律和联系。
plot函数
fplot函数
1.plot函数
用户绘制平面上的线性坐标曲线。
格式:plot(x, y)
其中,x和y分别用于存储x坐标和y坐标数据。通常,x和y为长度相同的向量。
例1 绘制一条折线。
>> x=[2.5, 3.5, 4, 5];
>> y=[1.5, 2.0, 1, 1.5];
>> plot(x, y)
(2)最简单的plot函数调用格式—只包含一个输入参数
格式:plot(x)
当x是实向量时,下标为横坐标,值为纵坐标,绘制一条曲线。
>> x=[1.5, 2, 1, 1.5];
>> plot(x)
当plot函数的参数x是复数向量时,则分别以该向量元素实部和虚部为横、纵坐标绘制出一条曲线。
>> x=[2.5, 3.5, 4, 5];
>> y=[1.5, 2, 1, 1.5];
>> cx=x+y*i; // cx = complex(x,y);
>> plot(cx)
TIP:复型变量也可以用complex函数构建 cx = complex(x,y);
(3)plot(x, y)函数参数的变化形式
当x是向量,y是矩阵时
如果矩阵y的列数等于x的长度,则以向量x为横坐标,以y的每个行向量为纵坐标绘制曲线,曲线的条数等于y的行数。
如果矩阵y的行数等于x的长度,则以向量x为横坐标,以y的每个列向量为纵坐标绘制曲线,曲线的条数等于y的列数。
例2 绘制sin(x)、sin(2x)、sin(x/2)的函数曲线。
>> x=linspace(0,2*pi,100); //利用linspace生成的有100个元素的行向量数据的第一个元素值为a,最后一个元素为b,n是总采样点数。
>> y=[sin(x); sin(2*x); sin(0.5*x)];
>> plot(x,y)
当x、y是同型矩阵时
以x、y对应列元素为横、纵坐标分别绘制曲线,曲线条数等于矩阵的列数。
>> t=0:0.01:2*pi; //0-2π的行向量
>> t1=t'; //列向量
>> x=[t1, t1, t1];
>> y=[sin(t1), sin(2*t1), sin(0.5*t1)];
>> plot(x,y)
(4)含多个输入参数的plot函数
不同长度的多条曲线时,采用包含若干组向量对的格式调用plot函数。
plot(x1, y1, x2, y2, …, xn, yn)
其中,每一向量对构成一组数据点的横、纵坐标,绘制一条曲线。
数据点越多,曲线越光滑。
例3 采用不同个数的数据点绘制正弦函数曲线,观察曲线形态。
>> t1=linspace(0, 2*pi, 10); //10个元素
>> t2=linspace(0, 2*pi, 20);
>> t3=linspace(0, 2*pi, 100);
>> plot(t1, sin(t1), t2,sin(t2)+1, ...t3, sin(t3)+2)
(5)含选项的plot函数
plot(x, y, 选项)
其中,选项用于指定曲线的线型、颜色和数据点标记。
例4 用不同线型和颜色在同一坐标内绘制曲线y=2e-0.5xsin(2πx)及其包络线。
x=(0:pi/50:2*pi)'; //列向量
y1=2*exp(-0.5*x)*[1,-1]; //两个列向量构成的矩阵 两个包络线的纵坐标
y2=2*exp(-0.5*x).*sin(2*pi*x); //曲线的纵坐标
x1=0:0.5:6; //正弦函数与X轴交点的坐标是π的整数倍
y3=2*exp(-0.5*x1).*sin(2*pi*x1); //曲线与x轴交点的纵坐标
plot(x,y1,'k:', x,y2,'b--', x1,y3,'rp')
使用plot函数绘图时,先要取得x、y坐标,然后再绘制曲线,x往 往采取等间隔采样。在实际应用中,函数随着自变量的变化趋势未知, 或者在不同区间函数频率特性差别大,此时使用plot函数绘制图形, 如果自变量的采样间隔设置不合理,则无法反映函数的变化趋势。
例5 绘制函数sin1/𝒙 的图形。
>> x=0:0.005:0.2;
>> y=sin(1./x);
>> plot(x,y)
2.fplot函数——自适应调制采样间隔函数fplot。
可根据参数函数的变化特性,自适应的设置采样间隔。
(1)fplot函数的基本用法 fplot(f ,lims, 选项 )
其中,f代表一个函数,通常采用函数句柄的形式。lims为x轴的取值范围,用二元向量[xmin(坐标轴下线),xmax]描述,默认值为[-5, 5]。选项定 义与plot函数相同。
例6 采用fplot函数绘制函数sin1/x。
由于有些区间数据点密集,会导致数据的曲线变形,因此采用fplot函数,建议不使用数据点标记。
>> fplot(@(x) sin(1./x),[0,0.2], 'b')
(2)双输入函数参数的用法
曲线以参数方程的形式给出
fplot(funx, funy, tlims, 选项)
其中,funx、funy代表函数,通常采用函数句柄的形式。tlims为参数函数funx和funy的自变量的取值范围,用二元向量[tmin,tmax] 描述 。
例:
>> fplot(@(t)t.*sin(t), @(t)t.*cos(t), [0,10*pi], 'r')