安阳工学院。
专业课课程大作业。
课程名称(中文) matlab编程应用
成绩。姓名李健。
班级10通信工程。
学号201002030013
日期2024年12月22日。
关于matlab图形绘制的应用。
摘要:图形处理系统使得matlab能方便的图形化显示向量和矩阵,而且能对图形添加标注和打印。它包括强大的二维三维图形函数、图像处理和动画显示等函数。
matlab自产生之日起就具有方便的数据可视化功能,以将向量和矩阵用图形表现出来,并且可以对图形进行标注和打印。高层次的作图包括二维和三维的可视化、图象处理、动画和表达式作图。可用于科学计算和工程绘图。
关键词:matlab 图形绘制编程应用二维三维。
一、设计目的。
1)了解matlab平面绘图的命令,如matlab常用的二维及三维绘图命令。
2)了解matlab立体图形的绘制,其中包括常用的立体绘图函数的理解。
3)熟练掌握matlab软件,编写计算平均值和标准差公式,编译程序运行是否有错误并改正。
4)掌握使用软件 matlab 用数学方法生成符合要求的图形,会用数学方法对图形图像作需要的处理。
二、设计要求。
1) 应能独立操作,独立使用软件 matlab 及编写程序及操作;
2) 每次课后在课外对教师提出的问题的解决程序或者命令在第二次上课前准备好;
3) 综合实验项目涉及到的数学知识必须在教师指导下在课外作好复习。
三、matlab介绍及功能。
1、matlab的简介。
matlab的图形绘制和数值计算的功能是很强大,熟练的掌握可以为我们解决很多的实际问题。它和c语言、j**a语言等一样也是一门独立存在的语言,它强大而智能化的作图功能更好的解决了这方面的问题。下面通过几个具体的实例应用来说这一点。
2、matlab的绘图功能:
1)二维绘图:
a、plot——最基本的二维图形指令:
1. 单窗口单曲线绘图;2. 单窗口多曲线绘图;3.
单窗口多曲线分图绘图;4. 多窗口绘图;5.可任意设置颜色与线型;6.
图形加注功能;绘制函数图函数;符号函数的简易绘图函数
b、fill——基本二维绘图函数:绘制二维多边形并填充颜色;
c、特殊二维绘图函数:bar——绘制直方图;
polar——绘制极坐标图;hist——绘制统计直方图;stairs——绘制阶梯图;stem——绘制火柴杆图;rose——绘制统计扇形图;comet——绘制彗星曲线;errorbar——绘制误差棒图;compass——复数向量图(罗盘图);feather——复数向量投影图(羽毛图);quiver——向量场图;area——区域图;pie——饼图;convhull——凸壳图;scatter——离散点图。
matlab中函数bar绘制直方图中的应用函数bar(x)可以绘制直方图,这对统计或者数据采集非常直观实用。它共有四种形式:bar,bar3,barh 和bar3h,其中bar 和bar3 分别用来绘制二维和三维竖直方图,barh 和bar3h 分别用来绘制二维和三维水平直方图,调用格式是:
bar(x,y) 其中x 必须单调递增或递减,y 为n m× 矩阵,可视化结果为m 组,每组n 个垂直柱,也就是把y 的行画在一起,同一列的数据用相同的颜色表示;
bar(x,y,width) (或bar(y,width))指定每个直方条的宽度,如width>1,则直方条会重叠,默认值为width=0.8;
bar(…,grouped’) 使同一组直方条紧紧靠在一起;
bar(…,stack’) 把同一组数据描述在一个直方条上。
2)三维绘图:
a、三维线图:plot3——基本的三维图形指令。
b、三维网格图:mesh——三维网线绘图函数
c、三维表面图:surf——三维曲面绘图函数,与网格图看起来一样
d、三维轮廓图:contour——三维轮廓绘图函数
e、三维混合图:surfc——三维混合绘图函数。
四、设计内容。
实例1:直方图。
用直方图显示数据的分布规律。
实例2:非线性曲线拟合。
对一组数据进行近似曲线的非线性曲线拟合。
实例3:**人口。
通过已有的数据对未来人口的**。
实例1:a、已知两组数据x=[5 2 1;8 7 3;9 8 6;5 5 5;4 3 2],y=[5 2 1;8 7 3;9 8 6;5 5 5;4 3 2]。用bar函数对x作纵向直方图,用barh函数对y作横向直方图,并用subplot函数将它们放在一个图中。
b、已知两组数据x=[5 4 1;8 9 3;9 7 6;5 6 5;4 3 2], y=[5 2 2;8 7 3;9 7 6;5 4 5;4 5 2]。用bar函数对x作纵向直方图用barh函数对y作横向直方图,并用subplot函数将它们放在一个图中。
实例2:首先我们得到了两组数据x=[24 25 28 30 32 35 38 40],y=[30 29 25 23 21 19 17 16]。其中y是关于x的函数,通过描点,我们可以看出该曲线近似于函数方程y=,该函数为非线性的。
用非线性曲线拟合的方法,可以求得a1 =76.9996 a2 =0.0398 即y3=然后就可以画出该曲线的方程。
即通过已知的一些数据(点),可以求出它们所对应的函数关系。
实例3:我们在已知logistic人口模型:x(t)=n/(1+(n/x0-1)*exp(-r*t))的情况下,并由所得到的2024年到2024年人口数据。
x=[72.538,74.542,76.
368,78.534,80.671,82.
992,85.229,87.177,89.
211,90.859,92.420,93.
717,94.974,96.259,97.
542,98.705,100.072,101.
654,103.008,104.357,105.
851,107.507,109.300,111.
026,112.704,114.333,115.
823,117.171,118.517,119.
850,121.121,122.389,123.
626,124.761,125.786,126.
743,127.627,128.453,129.
227,129.988],利用nlinfit函数可以算出人口的最大值n和固有的人口增长率r的值,然后由曲线方程**出2050的人口数据。
五、设计的程序清单和运行结果。
实验1程序如下:
实例1 a:
h0=figure('*******','none',.
'position',[200 50 450 450],.
'name','实例1');
subplot(2,1,1)
将图分成两部分,两行一列。
x=[5 2 1
bar(x)
xlabel('x轴');
ylabel('y轴');
title('第一子图');
subplot(2,1,2)
y=[5 2 1
barh(y)
xlabel('x轴');
ylabel('y轴');
title('第二子图')
运行结果:如图1。
图1 直方图a
实例1 b:
y=[5 3 2 9;4 7 2 7;1 5 7 3];
subplot(2,2,1),bar(y)
x=[5 9 11];
subplot(2,2,2),bar3(x,y)
subplot(2,2,3),bar(x,y,'grouped')
subplot(2,2,4),bar(rand(2,3),.75,'stack')
运行结果:如图2。
图2 直方图b
实例2程序如下:
程序 1:x=[24 25 28 30 32 35 38 40];
y=[30 29 25 23 21 19 17 16];
yy=log(y);
p=polyfit(x,yy,1)
a2=-p(1)
a1=exp(p(2))
运行结果 1:p =
a2 =a1 =
程序2:x=[24 25 28 30 32 35 38 40];
y=[30 29 25 23 21 19 17 16];
p=polyfit(x,y,2);
yy=polyval(p,x);
subplot(121);
plot(x,y, 'x,yy);
axis([20 60 0 40]);
x=0:0.01:300;
y=76.9996*exp(-0.0398*x);
subplot(122);
plot(x,y);
axis([0 80 0 80]);
title('非线性的曲线拟合');
xlabel('x轴 ')
ylabel('y=59.7881*exp(-0.0133*x)')
运行结果 2:如图3。
图3 非线性曲线拟合。
实例3程序如下:
t=1:40;
x=[72.538,74.542,76.
368,78.534,80.671,82.
992,85.229,87.177,89.
211,90.859,92.420,93.
717,94.974,96.259,97.
542,98.705,100.072,101.
654,103.008,104.357,105.
851,107.507,109.300,111.
026,112.704,114.333,115.
823,117.171,118.517,119.
850,121.121,122.389,123.
626,124.761,125.786,126.
743,127.627,128.453,129.
227,129.988];
人口的最大值n=p(1),固有的人口增长率r=p(2)
f=inline('p(1)./1+(p(1)/72.538-1)*exp(-p(2)*t))'p','t');
p=nlinfit(t,x,f,[200,0.01])
**2024年人口。
t_pre=86;
x_pre=p(1)./1+(p(1)/72.538-1)*exp(-p(2)*t_pre))
plot(t,x,'o')
hold on
tt=1:0.1:100;
xx=p(1)./1+(p(1)/72.538-1)*exp(-p(2).*tt));
plot(tt,xx)
matlab大作业
matlab语言及应用。周一晚作业廖育州07010559 第一组程序。绘制选用潍柴发动机wd615.50时汽车行驶性能曲线图,ft ua图clear,clc 清除内存变量,清屏 n为发动机的转速。n 1000,1100,1200,1300,1400,1500,1600,1700,1800,1900,...
MATLAB大作业
实验七图像的形态 算。一 实验目的。1.掌握图像的奇异值分解与合成。2.能够利用模板操作实现图像的腐蚀运算3.能够利用模板操作实现图像的膨胀运算4.掌握图像的开 闭运算。二 实验内容。1.读下面的程序,分析该程序要完成什么样的功能。a 1 2 1 2 3 2 1 2 1 u d v svd a nx...
MATLAB大作业
1.设计一个程序,要求用户用键盘输入10次,输入内容可以是数字 英文 汉字 或者其他文字或者符号。如果输入的是数字,则把存入一个数字数组当中 如果输入的是英文的字符,则存入一个英文字符数组当中 如果是其他字符,则存入一个字符串数组中。当10次内容都输入完毕后,先输出英文数组中的内容,然后输出字符串数...