使用数学软件Matlab建模画图程序汇总
这篇文章主要介绍了使用数学软件Matlab建模画图程序汇总,小编觉得挺不错的,现在分享给大家,也给大家做个参考。
软件版本:Matlab 2016b
1. 二维数据曲线图
1.1 绘制二维曲线的基本函数
1.1.1 plot()函数
plot函数用于绘制二维平面上的线性坐标曲线图,要提供一组x坐标和对应的y坐标,可以绘制分别以x和y为横、纵坐标的二维曲线。
例:
t=0:0.1:2*pi;
x=2 * t;
y=t.*sin(t).*sin(t);
plot(x, y);
1.1.2 含多个输入参数的plot函数
plot函数可以包含若干组向量对,每一组可以绘制出一条曲线。含多个输入参数的plot函数调用格式为:plot(x1,y1,x2,y2,…,xn,yn)
例:
x=linspace(0,2*pi,100);
plot(x,sin(x),x,2*sin(x),x,3*sin(x))
1.1.3含选项的plot函数
Matlab提供了一些绘图选项,用于确定所绘曲线的线型、颜色和数据点标记符号。这些选项如表所示:
线型 |
颜色 |
标记符号 |
|
-实线 |
b蓝色 |
.点 |
s方块 |
:虚线 |
g绿色 |
o圆圈 |
d菱形 |
.-点划线 |
r红色 |
x叉 |
v朝下三角符号 |
–双划线 |
c青色 |
+加号 |
^朝上三角符号 |
m品红 |
*星号 |
<朝左三角符号 |
|
y黄色 |
> > 朝右三角符号 |
p 五角星 |
|
k黑色 |
h 六角星 |
||
w白色 |
例: 用不同的线型和颜色在同一坐标内绘制曲线 及其包络线。
x=(0:pi/100:2*pi)';
y1=2*exp(-0.5*x)*[1,-1];
y2=2*exp(-0.5*x).*sin(2*pi*x);
x1=(0:12)/2;
y3=2*exp(-0.5*x1).*sin(2*pi*x1);
plot(x,y1,'k:',x,y2,'b--',x1,y3,'rp');
在该plot函数中包含了3组绘图参数,第一组用黑色虚线画出两条包络线,第二组用蓝色双划线画出曲线y,第三组用红色五角星离散标出数据点。
例: 设置正弦曲线的线宽为 3,设置上三角形进行数据点的标记,并设置标记 点边缘为黑色,设置标记点填充颜色为红色,设置标记点的尺寸为 10,则 MATLAB 代码 如下:
% 横坐标轴
x = linspace(0, 2*pi, 50);
% 生成数据点,纵坐标轴
y = 2 * sin(pi * x);
% 绘图
figure
% 设置线的宽带为3
plot(x, y, 'k--^', 'LineWidth', 3, ... 'MarkerEdgeColor', 'k', ... %设置标记点的边缘颜色为黑色 'MarkerFaceColor', 'r', ... %设置标记点的填充颜色为红色 'MarkerSize', 10) %设置标记点的尺寸为10
例: 利用五角星标记例两曲线的交叉点
% 横坐标轴
x = linspace(0, 2*pi, 1000);
% 生成数据点,纵坐标轴
y1 = 0.2 * exp(-0.5 * x).* cos(4 * pi * x);
y2 = 2 * exp(-0.5 * x) .* cos(pi * x);
% 查找y1与y2相等点(近似相等)的下标
k = find( abs(y1-y2) < 1e-2 );
%取y1与y2相等点的x坐标
x1 = x(k);
% 求y1与y2值相等点的y坐标
y3 = 0.2 * exp(-0.5 * x1) .* cos(4 * pi * x1);
% 绘图
figure
plot(x, y1, 'r-.', x, y2, 'k:', x1, y3, 'bp','LineWidth',2);
1.1.4 双纵坐标函数plotyy
在Matlab中,如果需要绘制出具有不同纵坐标标度的两个图形,可以使用plotyy函数,它能把具有不同量纲,不同数量级的两个函数绘制在同一个坐标中,有利于图形数据的对比分析。使用格式为:plotyy(x1,y1,x2,y2)
x1,y1对应一条曲线,x2,y2对应另一条曲线。横坐标的标度相同,纵坐标有两个,左边的对应x1,y1数据对,右边的对应x2,y2。
x=0:pi/100:2*pi;
% 生成曲线
y1=0.2*exp(-0.5*x).*cos(4*pi*x);
y2=2*exp(-0.5*x).*cos(pi*x);
% 绘图
figure
plotyy(x,y1,x,y2);
plot(x, y1, 'k-', x, y2, 'k-', 'LineWidth', 3)
1.2 绘制图形的辅助操作
1.2.1 图形标注
title('图形名称')
xlabel('x轴说明')
ylabel('y轴说明')
text(x,y,'图形说明')
legend('图例1','图例2',…)
title、xlabel和ylabel函数分别用于说明图形和坐标轴的名称。
text函数是在坐标点(x,y)处添加图形说明。
legend函数用于绘制曲线所用线型、颜色或数据点标记图例,图例放置在空白处,用户还可以通过鼠标移动图例,将其放到所希望的位置。
除legend函数外,其他函数同样适用于三维图形,在三维中z坐标轴说明用zlabel函数。
例:绘制正弦和余弦曲线,设置图形的标题、x 轴和 y 轴的标注,设置曲线标准。
% 横轴
x=0:pi/50:2*pi;
% 曲线数据
y1=sin(x);
y2=cos(x);
% 绘图
figure
plot(x, y1, 'k-', x, y2, 'k-.')
% 文本标注
text(pi, 0.05, '\leftarrow sin(\alpha)')
text(pi/4-0.05, 0.05, 'cos(\alpha)\rightarrow')
% 标题标注
title('sin(\alpha) and cos(\alpha)')
% 坐标轴标注
xlabel('\alpha')
ylabel('sin(\alpha) and cos(\alpha)')
1.2.2 坐标控制
axis([xmin xmax ymin ymax zmin zmax])
如果只给出前四个参数,则按照给出的x、y轴的最小值和最大值选择坐标系范围,绘制出合适的二维曲线。如果给出了全部参数,则绘制出三维图形。
axis函数的功能丰富,其常用的用法有:
axis equal:纵横坐标轴采用等长刻度
axis square:产生正方形坐标系(默认为矩形)
axis auto:使用默认设置
axis off:取消坐标轴
axis on:显示坐标轴
axis tight:按紧凑方式显示坐标轴范围,即坐标轴范围为绘图数据的范围
grid on/off:命令控制画还是不画网格线
例:观察曲线 y=cos(tan(πx))在 x=0.5 附近的图形曲线
% x轴
x = 0:1/3000:1;
% 生成误差曲线
y = cos(tan(pi*x));
% 绘图
figure
% 分裂窗口为2*1个子窗口
subplot(2,1,1)
plot(x,y)
title('\itcos(tan(\pix))')
% 坐标轴调整
subplot(2,1,2)
plot(x,y)
axis([0.4 0.6 -1 1]);
title('复杂函数的局部透视')
subplot(m,n,p)
该函数把当前窗口分成m×n个绘图区,m行,每行n个绘图区,区号按行优先编号。其中第p个区为当前活动区。每一个绘图区允许以不同的坐标系单独绘制图形。
1.3 绘制二维图形的其他函数
1.3.1 对数坐标图
在实际应用中,经常用到对数坐标,Matlab提供了绘制对数和半对数坐标曲线的函数,其调用格式为:
semilogx(x1,y1,选项1,x2,y2,选项2,…)
semilogy(x1,y1,选项1,x2,y2,选项2,…)
loglog(x1,y1,选项1,x2,y2,选项2,…)
这些函数中选项的定义和plot函数完全一样,所不同的是坐标轴的选取。
semilogx函数使用半对数坐标,x轴为常用对数刻度,而y轴仍保持线性刻度。semilogy恰好和semilogx相反。
loglog函数使用全对数坐标,x、y轴均采用对数刻度。
例:绘制函数 y=ex
% x轴
x=0:0.5:5;
% y轴
y = exp(x);
% 绘图
figure
% 笛卡尔坐标系
subplot(4, 1, 1)
plot(x, y, 'r-.')
title('笛卡尔坐标系')
% 半对数坐标系
subplot(4, 1, 2)
semilogx(x, y, 'g:')
title('x轴为对数坐标系')
subplot(4, 1, 3)
semilogy(x, y, 'b-')
title('y轴为对数坐标系')
% 对数坐标系
subplot(4, 1, 4)
loglog(x, y, 'k:','LineWidth',4)
title('对数坐标系')
1.3.2 饼图
- pie(x):绘制数据 x 的饼图,x 可以是向量或者矩阵,x 中的每一个元素将代表饼图的一个扇区,同时饼图中显示各元素总和的比例。
- pie(x, explode):绘制数据 x 的饼图,其中参数 explode 可以用来设置饼图中某个重要的扇区进行抽取式重点显示,这里需要注意的是,explode 向量的长度与 x 中的元素个数相等,并与 x 中的元素意义对应,explode 元素为非零值,对应的元素扇区将从饼图中分离显示,通常非零值都设置为 1。
- pie(x, labels):绘制数据 x 的饼图,其中参数 labels 可以用来设置饼图中各个扇区的显示标注,注意参数 labels 应该为字符串或者数字利用向量 X中的数据描绘饼图
例:有一位研究生,在一年中平均每月的费用为生活费 190 元,资料费 33 元, 电话费 45 元,购买衣服 42 元,其他费用 45 元。请以饼图表示出他每月的消费比例,并在 饼图中分离出使用最多的费用和使用最少的费用的切片。
% 数据准备
x=[190 33 45 42 45];
% 分离显示设置
explode=[1 1 0 0 0];
% 绘图
figure()
colormap hsv
pie(x,explode,{'生活费','资料费','电话费','购买衣服','其他费用'})
title('饼图')
1.3.3 条形图
看例子:
%随机函数产生5*3的数组,对产生的数据取整
Y = round(rand(5,3)*10);
% 绘图
subplot(2,2,1)
bar(Y,'group')
title 'Group'
%堆型二维垂直条形图
subplot(2,2,2)
bar(Y,'stack')
title('Stack')
%堆型二维水平条形图
subplot(2,2,3)
barh(Y,'stack')
title('Stack')
%设定条形的宽度为1.5
subplot(2,2,4)
bar(Y,1.5)
title('Width = 1.5')
例:有一位研究生,在一年中平均每月的费用为生活费 190 元,资料费 33 元, 电话费 45 元,购买衣服 42 元,其他费用 45 元。请以柱状图表示出他每月的消费比例。 MATLAB 代码如下:
% 数据准备
y=[190 33 45 42 45];
x=1:5 ;
% 绘图
figure
bar(x,y)
title('柱状图');
set(gca,'xTicklabel',{'生活费','资料费','电话费','购买衣服','其他费用'})
1.3.4 排列图
排列图又称累托(Pareto)图,由一 个横坐标、两个纵坐标、多个按高低顺序 排列的条形和一条折线组成。其中,横坐 标表示各因素,左纵坐标表示频数,右纵 坐标表示频率,折线表示累积的频率。该 图能较好地分析各因素的重要性,可用于 寻找主要问题或主要原因。在MATLAB 中 pareto()函数用于绘制排列图,其调用格式如下:
pareto(y):绘制数据y的排列图。y值的大小用排列图条形的高度表示。pareto(y,x):绘制数据y的排列图。当x为数值时,用于指定数值型的横坐标。当 x 为字符串时,用于指定字符串型的横坐标。
Y=[100 98 97 90 90];
names={'第1名' '第2名' '第3名' '第4名' '第5名'};
pareto(Y,names)
2. 三维图形
2.1 绘制三维曲线
2.1.1 用plot3()函数画三维曲线
最基本的三维图形函数为plot3,它将二维绘图函数plot的有关功能扩展到三维空间,可以用来绘制三维曲线。其调用格式为:
plot3(x1,y1,z1,选项1,x2,y2,z2,选项2,…)
其中每一组x,y,z组成一组曲线的坐标参数,选项的定义和plot的选项一样。当x,y,z是同维向量时,则x,y,z对应元素构成一条三维曲线。当x,y,z是同维矩阵时,则以x,y,z对应列元素绘制三维曲线,曲线条数等于矩阵的列数。
例:
t=0:pi/50:2*pi;
x=8*cos(t);
y=4*sqrt(2)*sin(t);
z=-4*sqrt(2)*sin(t);
plot3(x,y,z,'p');
title('Line in 3-D Space');
text(0,0,0,'origin');
xlabel('X');ylabel('Y');zlabel('Z');grid;
2.1.2 三维网格图的绘制
在 MATLAB 中,进行三维图形绘制时,常常需要首先创建三维网格,也就是先创建 平面图的坐标系。在 MATLAB 中,常用 meshgrid()函数生成网格数据,其调用格式如下。
[X,Y]=meshgrid(x,y):用于生成向量 x 和 y 的网格数据,即变换为矩阵数据 X 和 Y, 矩阵 X 中的行向量为向量 x,矩阵 Y 的列向量为向量 y。[X,Y]=meshgrid(x):生成向量 x 的网格数据,函数等同[X,Y]=meshgrid(x,x)。
[X,Y,Z]=meshgrid(x,y,z) :生成向量 x、y、z 的三维网格数据,生成的数据 X 和 Y 可分别表示三维绘图中的 x 和 y 坐标。
三维网格图形是指在三维空间内连接相邻的数据点,形成网格。在MATLAB中绘制三维网格图的函数主要有mesh()函数、meshc()函数和meshz()函数。其中,mesh()函数最常 用,其调用格式如下:
mesh(x,y,z):绘制三维网格图,x、y、z 分别表示三维网格图形在 x 轴、y 轴和 z 轴 的坐标,图形的颜色由矩阵 z 决定。
mesh(Z):绘制三维网格图,分别以矩阵 Z 的列下标、行下标作为三维网格图的 x 轴、y 轴的坐标,图形的颜色由矩阵 Z 决定。
mesh(...,C):输入参数C用于控制绘制的三维网格图的颜色。mesh(...,'PropertyName',PropertyValue,...):设置三维网格图的指定属性的属性值。
函数 meshc()可绘制带有等值线的三维网格图,其调用格式与函数 mesh()基本相同, 但函数 meshc()不支持对图形网格线或等高线指定属性的设置。
函数 meshz()可绘制带有图形底边的三维网格图,其调用格式与函数 mesh()基本相同, 但函数 meshz()不支持对图形网格线指定属性的设置。
另外,函数ezmesh()、ezmeshc()和ezmeshz()可根据函数表达式直接绘制相应的三维网格图。
由于网格线是不透明的,绘制的三维网格图有时只能显示前面的图形部分,而后面的 部分可能被网格线遮住了,没有显示出来。 MATLAB中提供了命令 hidden 用于观察图形后面隐藏的网格,hidden 命令的调用格式如下:
hidden on:设置网格隐藏部分不可见,默认情况下为此状态。
hidden off:设置网格的隐藏部分可见。
hidden:该命令用于切换网格的隐藏部分是否可见。
例:绘制简单的三维网格图
% 数据准备
t=0:pi/10:pi;
x=sin(t);
y=cos(t);
[X,Y]=meshgrid(x,y);
z =X + Y;
% 绘图
figure
mesh (z,'FaceColor','W','EdgeColor','K')
grid
title('三维网格图');
2.2 三维表面图的绘制
三维表面图也可以用来表示三维空间内数据的变化规律,与之前讲述的三维网络图的 不同之处在于对网格的区域填充了不同的色彩。在 MATLAB 中绘制三维表面图的函数为 surf()函数,其调用格式如下:
surf(Z):绘制数据 Z 的三维表面图,分别以矩阵 Z 的列下标、行下标作为三维网格图的 x 轴、y 轴的坐标,图形的颜色由矩阵 Z 决定。
surf(X, Y, Z):绘制三维表面图,X、Y、Z 分别表示三维网格图形在 x 轴、y 轴和 z 轴的坐标,图形的颜色由矩阵 Z 决定。
surf(X, Y, Z, C):绘制三维表面图,输入参数 C 用于控制绘制的三维表面图的颜色。
surf(..., 'PropertyName', PropertyValue):绘制三维表面图,设置相应属性的属性值。
函数 surfc()用于绘制带等值线的三维表面图,其调用格式同函数 surf()基本相同,函数 surfl()可用于绘制带光照模式的三维表面图,与函数 surf()和 surfc()不同的调用格式如下:
surfl(...,'light'):以光照对象 light 生成一个带颜色、带光照的曲面。surfl(...,'cdata'):输入参数 cdata 设置曲面颜色数据,使曲面成为可反光的曲面。
surfl(...,s):输入参数 s 为一个二维向量[azimuth,elevation],或者三维向量[x,y,z],用于指定光源方向,默认情况下光源方位从当前视角开始,逆时针 45°。
例:简单对 surf()函数进行举例
% 数据准备
xi=-10:0.5:10;
yi=-10:0.5:10;
[x,y]=meshgrid(xi,yi);
z=sin(sqrt(x.^2+y.^2))./sqrt(x.^2+y.^2);
% 绘图
surf(x,y,z)
2.3 三维切片图的绘制
在MATLAB中slice()函数用于绘制三维切片图。三维切片图可形象地称为“四维图”,可以在三维空间内表达第四维的信息,用颜色来标识第四维数据的大小。slice()函数的调用格式如下:
slice(v, sx, sy, sz):输入参数 v 为三维矩阵(阶数为 m x n x p),x、y、z 轴默认状态下分别为 1:m、1:n、1:p,数据 v 用于指定第四维的大小,在切片图上显示为不同的颜色,输入参数 sx、sy、sz 分别用于指定切片图在 x、y、z 轴所切的位置。
slice(x ,y, z, v, sx, sy, sz):输入参数 x、y、z用于指定绘制的三维切片图的 x、y、z轴。
slice(...,'method'):输入参数method用于指定切片图绘制时的内插值法,'method' 可以设置的参数有:'linear'(三次线性内插值法,默认)、'cubic'(三次立方内插 值法)、'nearest'(最近点内插值法)。
例:观察函数在-2≤x≤2、-2≤y≤2、-2≤z≤2 上的体积情况
% 数据准备
xi=-10:0.5:10;
yi=-10:0.5:10;
[x,y]=meshgrid(xi,yi);
z=sin(sqrt(x.^2+y.^2))./sqrt(x.^2+y.^2);
[x,y,z] = meshgrid(-2:.2:2, -2:.25:2, -2:.16:2);
v = x.*exp(-x.^2-y.^2-z.^2);
xslice = [-1.2,.8,2];
yslice = 2;
zslice = [-2,0];
% 绘图
slice(x,y,z,v,xslice,yslice,zslice)
使用数学软件Matlab建模画图程序汇总相关推荐
- matlab编程数学基础,数学软件 Matlab ——编程基础(脚本).ppt
数学软件 Matlab 本讲主要内容 Matlab 编程入门 M 文件 M 文件 编程示例 本讲主要内容 关系运算 关系运算举例 逻辑运算 逻辑运算表 逻辑运算 一些测试函数 运算优先级 本讲主要内容 ...
- 如何用数学软件MATLAB表白:让你在5月20日成功脱单
如何用数学软件MATLAB表白:让你在5月20日成功脱单 再过几天就是2020年5月20日了,刺激吗?扎心吗?请你记住我经典的话:此生入IT,单身不足惜 好吧!为了让生活不再孤单,你还是得去表白试试, ...
- 数学软件Matlab、Mathematica、Maple、Mathcad、SAS、SPSS、Lindo
Matlab MATLAB是MathWorks公司推出 的一套高性能的数值计算和可视化软件,经过多年大量的.坚持不懈的改进,现在MATLA已经更新至7.x版.MATLAB集数值分析.矩阵运算.信号处理 ...
- 运用数学软件matlab求无穷积分,matlab积分的计算及其简单应用论文.doc
积分的计算及其简单应用 摘要:本文简要的概述了MATLAB 在高等数学中积分的计算及应用:利用MATLAB 中符号积分和数值积分的命令,计算定积分和不定积分.同时,也可以通过这些命令来解决一些实际问题 ...
- 01 数学软件与建模---基础
目录 一.基础知识 01 数学的重要性 02 数学建模概况 03 数学建模竞赛概况 04 所需具备的基础知识 二.数学建模的相关内容 1.数学建模的方法 2.建立数学模型的一般步骤 3.模型准备 4. ...
- 02 数学软件与建模---MATLAB入门
MATLAB作为线性系统的一种分析和仿真工具,是理工科大学生应该掌握的技术工具,它作为一种编程语言和可视化工具,可解决工程.科学计算和数学学科中许多问题. MATLAB建立在向量.数组和矩阵的基础上, ...
- 03 数学软件与建模---微分方程建模
一.计算 1.微分方程的解析法 //2015年之后的版本去掉了simple //现在用simplify代替 2.微分方程的数值解 高阶微分方程化为一阶微分方程 //解微分方程组的时候后安排位 ...
- 04 数学软件与建模---最优化模型
一.优化模型的数学描述 二.优化模型的分类 1.根据是否存在约束条件 有约束问题和无约束问题. 2.根据设计变量的性质 静态问题和动态问题. 3.根据目标函数和约束条件表达式的性质 线性规划,非线性规 ...
- Matlab plot 画图问题汇总
1. title 含 数字变量 显示 clear clcx=1:0.01:10; y=sin(x); plot(x,y,'linewidth',3) xlabel('x') ylabel('y') x ...
最新文章
- LeetCode简单题之连续字符
- 使用VC连接Access数据库的两种方法
- android注册弹窗,Android开发之PopupWindow创建弹窗、对话框的方法详解
- springboot集成spring security实现登录和注销
- 顺序查找与二分查找算法
- Stable Sort Aizu - ALDS1_2_C
- php的变量引用与销毁机制
- table标签中 如何固定td 宽度
- krohne流量计接线图_KROHNE科隆电磁流量计工作原理介绍
- matlab运算放大器仿真,利用Matlab分析运算放大器电路.doc
- Android 之 日期时间 时区同步
- openwrt系统理解
- speedoffice(Excel)如何全选表格
- 冠军联赛:当火焰变成焰火 海水变成泪水
- python编程入门指南磁力下载-实战Python语言实现BT种子转化为磁力链接
- GeoPandas库入门教程
- 为什么浏览器会限制ajax并行请求数量,有办法突破限制吗
- diy nas配置推荐2019_Server2019+htpc+NAS搭建家庭数据中心+远程唤醒开关机+晒晒桌面...
- 由于短期理财基金到期的最后一天是按活期利率盘算
- 8月8日科技快讯:库比蒂诺想修超级高铁,市长点名要苹果掏钱
热门文章
- 汽车行业全渠道一站式解决方案
- STM32 10个工程篇:1.IAP远程升级(一)
- 冰蓝科技spire.pdf写入到pdf文件时,中文无法显示的原因
- 《操作系统实用教程--螺旋方法》习题答案
- 如何快速把word文档中图片一键批量另存导出
- 【Java】Java概述以及开发环境简介
- 麓言信息运动类APP界面设计必备知识点
- jQuery面试题16道
- AD域服务器如何推送消息到客户端,通过域控AD GPO策略推送安装SEP客户端配置步骤...
- linux查看vnc进程命令_linux vncviewer使用ubuntu 关机命令