纯净、安全、绿色的下载网站

首页|软件分类|下载排行|最新软件|IT学院

当前位置:首页IT学院IT技术

Matlab建模画图程序 使用数学软件Matlab建模画图程序汇总

乐清sss   2021-12-15 我要评论
想了解使用数学软件Matlab建模画图程序汇总的相关内容吗乐清sss在本文为您仔细讲解Matlab建模画图程序的相关知识和一些Code实例欢迎阅读和指正我们先划重点:Matlab建模画图程序汇总,Matlab建模画图程序下面大家一起来学习吧。

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);

2.含多个输入参数的plot函数

plot函数可以包含若干组向量对每一组可以绘制出一条曲线。含多个输入参数的plot函数调用格式为:plot(x1y1x2y2…xnyn)

例:

x=linspace(0,2*pi,100);
plot(x,sin(x),x,2*sin(x),x,3*sin(x))

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); 

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.图形标注

title('图形名称')
xlabel('x轴说明')
ylabel('y轴说明')
text(xy'图形说明')
legend('图例1''图例2'…)
  • title、xlabel和ylabel函数分别用于说明图形和坐标轴的名称。
  • text函数是在坐标点(xy)处添加图形说明。
  • 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)') 

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(mnp)

该函数把当前窗口分成m×n个绘图区m行每行n个绘图区区号按行优先编号。其中第p个区为当前活动区。每一个绘图区允许以不同的坐标系单独绘制图形。

1.3 绘制二维图形的其他函数

1.对数坐标图

在实际应用中经常用到对数坐标Matlab提供了绘制对数和半对数坐标曲线的函数其调用格式为:

semilogx(x1y1选项1x2y2选项2…)
semilogy(x1y1选项1x2y2选项2…)
loglog(x1y1选项1x2y2选项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('对数坐标系')

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('饼图') 

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',{'生活费','资料费','电话费','购买衣服','其他费用'}) 

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 绘制三维曲线

1.用plot3()函数画三维曲线

最基本的三维图形函数为plot3它将二维绘图函数plot的有关功能扩展到三维空间可以用来绘制三维曲线。其调用格式为:

plot3(x1y1z1选项1x2y2z2选项2…)

其中每一组xyz组成一组曲线的坐标参数选项的定义和plot的选项一样。当xyz是同维向量时则xyz对应元素构成一条三维曲线。当xyz是同维矩阵时则以xyz对应列元素绘制三维曲线曲线条数等于矩阵的列数。

例:

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. 三维网格图的绘制

在 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建模画图程序汇总希望对大家有所帮助。在此也非常感谢大家对网站的支持!


相关文章

猜您喜欢

  • Python中的Dict 详解Python中的Dict

    想了解详解Python中的Dict的相关内容吗雷学委在本文为您仔细讲解Python中的Dict的相关知识和一些Code实例欢迎阅读和指正我们先划重点:Python,Python Dict下面大家一起来学习吧。..
  • Python中的Dict 详解Python中的Dict2

    想了解详解Python中的Dict2的相关内容吗雷学委在本文为您仔细讲解Python中的Dict的相关知识和一些Code实例欢迎阅读和指正我们先划重点:Python,PythonDict下面大家一起来学习吧。..

网友评论

Copyright 2020 www.ducttapegames.com 【环球游戏网】 版权所有 软件发布

声明:所有软件和文章来自软件开发商或者作者 如有异议 请与本站联系 点此查看联系方式