(完整版)matlab第九讲教案
西南科技⼤学本科⽣课程备课教案
计算机技术在安全⼯程中的应⽤
——Matlab⼊门及应⽤
授课教师:徐中慧
班级:
乳胶枕清洗专业:安全技术及⼯程
第九章⾼级绘图
课型:新授课教具:多媒体教学设备,matlab 教学软件
⼀、⽬标与要求
jazz分类掌握matlab 如何处理三种不同类型的图形⽂件,使⽤句柄图形指定绘图的句柄并调整特性,通过matlab 两种技术的任意⼀种创建动画。
⼆、教学重点与难点
本堂课教学的重点与难点在于引导学⽣掌握句柄图形的使⽤,并掌握matlab 创建动画的⽅法。
三、教学⽅法
本课程主要通过讲授法、演⽰法、练习法等相结合的⽅法来引导学⽣掌控本堂课的学习内容。
四、教学内容
(1)⽕箭垂直向上发射。在t=0时⽕箭发动机关闭,此时⽕箭的⾼度为海拔500,速度为125m/s ,考虑重⼒加速度,根据等式
2
如何彻底删除软件9.8()125500,02
h t t t t =-
++f ①创建函数heigh t ,以时间为输⼊变量,⽕箭的飞⾏⾼度为输出变量。利⽤函数对下⾯的②和③进⾏求解。
②时间增量为0.5秒,变化范围0到30秒,画出函数height 与时间的关系曲线。③计算⽕箭开始向地⾯降落的时间(可以使⽤函数max )。④创建函数height 的函数句柄height_handle 。
⑤以height_handle 作为函数fplot 的输⼊参数,画出0到60秒内的函数曲线。
⑥⽤函数fzero 求⽕箭返回地⾯所⽤的时间(当⽕箭返回地⾯时,函数height 的值应该等于0)。fzero 是复合函数,可以⽤函数或函数句柄作为输⼊参数。调⽤⽅法如下:
fzero(function_handl e ,x_guess)
函数fzero 的两个输⼊参数分别是函数句柄和函数值接近0时的x 的估算值。读者可以根据绘出的曲线选择合理的x_guess 值。
①function output=height(t)
最后一个冬天output=-4.9.*t.^2+125.*t+500;
②
%% two t=0:0.5:30; h=height(t); plot(t,h,'o-r') hold on %% three [a,b]=max(h); t_max=t(b) %% four
height_handle=@(t) height(t);
%% five
fplot(height_handle,[0,60]);
%% six
fzero(height_handle,30)
(2)①创建匿名函数my_function,计算下式:
253x
---+
x x e
②⽤函数fplot画出x在-5到+5之间的函数曲线。函数句柄可以作为函数fplot的输⼊参数。
③在此x范围内,⽤函数fminbnd求函数的最⼩值。fminbnd是复合函数,其输⼊参数可以是函数也可以是函数句柄。调⽤⽅法如下:
fminbnd(function_handle,xmin,xmax)
函数fminbnd有三个输⼊参数:函数句柄、x的最⼩值和x的最⼤值。利⽤该函数求在x的最⼩值和最⼤值之间函数的最⼩值。
my_function=@(x) -x.^2-5.*x+exp(x);
fplot(my_function,[-5,5]);
a=fminbnd(my_function,-5,5)
(3)西科⼤安家费提取利息计算。根据相关规定我国公民个⼈每⽉收⼊超过2000元需缴纳个⼈所得税。我国个⼈所得税采⽤阶梯税率,当⽉收⼊越⾼,所缴税款越多。西科⼤安家费的提取有多种形式:可以⼀次性提取,也可以等额多次提取。
问题1:编写函数M⽂件,计算每⽉定额提取⼀定数额的安家费所缴纳的税款及提取期限。(假设每⽉⼯资收⼊为4000元)
问题2:调⽤问题1编写的函数M⽂件,绘制总税款随定额提取⾦额和总税款随提取期限变化的⼆维图形
问题⼀
①定义主函数M⽂件;
②计算当⽉应缴税⼯资部分;
③调⽤⼦函数计算缴纳的总税款和缴税的总期
南安县限;
④编写⼦函数计算每⽉应缴纳的税款。
输⼊:安家费总⾦额,每⽉提取定额
输出:缴纳的总税款,缴税期限?问题⼆新拼音怎么写
①建⽴脚本M⽂件
②调⽤问题⼀建⽴的函数⽂件,计算总利息和
提取期限
③计算总利息随每⽉安家费提取⾦额变化的
⼆维图形
④计算总利息随提取期限变化的⼆维图形
(1)function [tax,duration]=mytax(s,x)
Y=4000+x;
Y1=Y-2000;
if rem(s,x)==0
duration=s./x;
tax=(myfunction(Y1)-myfunction(4000)).*duration;
el duration=fix(s./x)+1;
b=myfunction(s-x.*(duration-1));
tax=myfunction(Y1).*(duration-1)-myfunction(4000).*duration+b;
end
法学本科毕业论文
function tax=myfunction(a)
if a<=5000
tax=500*0.05+1500*0.1-25+(a-2000)*0.15;
elif 5000
tax=500*0.05+1500*0.1+3000*0.15+(a-5000)*0.2;
elif 20000
tax=500*0.05+1500*0.1+3000*0.15+15000*0.2+(a-20000)*0.25
el disp('error')
end
(2)x=2500:100:40000;
[a,b]=mytax(80000,x);
subplot(2,1,1)
plot(x,a,'-')
xlabel('money/permonth')
ylabel('tax')
grid
subplot(2,1,2)
plot(b,a,'-')
xlabel('month')
ylabel('tax')
grid
引⾔
⼯程中常⽤的基本图形是x-y坐标、极坐标和曲⾯等图形,常⽤于商业⽤途的图形是饼图、条形图和
柱状图。Matlab提供了重要的图形控制功能,使⼈们不仅可以处理图形(如数字照⽚),还能够创建物理过程的数据和模型的三维表⽰(曲⾯图形除外)。
图像的相关特性引⼊。
绝⼤多数的图形图像软件教程都会浅显地介绍⼀下位图、⽮量图、分辨率、像素等基本概念。⽹上也有很多⽂章可以查阅了。
⽮量图
⽮量图使⽤线段和曲线描述图像,所以称为⽮量,同时图形也包含了⾊彩和位置信息。例如树叶的⽮量图,就是利⽤⼤量的点连接
成曲线来描述树叶的轮廓线.然后根据轮廓线,在图像内部填充⼀定的⾊彩. ⽮量图更多的⽤于⼯程作图中,⽐如我们⽤CAD作的图。
位图
位图就是我们称为像素的⼀格⼀格的⼩点来描述图像.⼤家的计算机屏幕其实就是⼀张包含⼤量像素点的⽹格.在位图中,上⾯我们看到的树叶图像将会由每⼀个⽹格中的像素点的位置和⾊彩值来决定.每⼀点的⾊彩是固定的,当我们在更⾼分辨率下观看图像时,每⼀个⼩点看上去就像是⼀个个马赛克⾊块, 像素
像素指⼀幅位图⾥⾯最⼩组成单位,像素不能再被划分为更⼩的单位。在⼀般情况下,它是⼀块正⽅形,带有颜⾊、明暗、相对于整个图像的坐标等信息,
⼀定数量的颜⾊有别的正⽅形⼩块排列组合,⽤以表⽰⼀幅点阵图像,也就是位图图像。通过数码相机拍摄、扫描仪扫描或位图软件输出的图像都是位图。
分辨率
分辨率:像素不可以再被划分为更⼩的点,但实际上像素是有⼤有⼩的。单位⾯积内容纳的正⽅形⼩块的数⽬,就是⼀幅图像的分辨率。单位⾯积内,容纳的像素越多,单个像素也越⼩,图像质量越⾼;
反之,单位⾯积内容纳的像素越少,单个像素越⼤,图像质量越低。为表⽰⽅便,图像分辨不⽤⾯积来表⽰,⽽是⽤矩形的⼀边上的单位长度内所容纳的像素数来表⽰,长度单位⼀般是英⼨,我们常说的印刷图像的分辨率是300,即表⽰这幅图像⼀英⼨长度(合2.54厘⽶)内含有300个像素,⼀平⽅英⼨内则有9万像素。
迪奥与我数字图像在计算机上以位图(bitmap)的形式存在,位图是⼀个矩形点阵,其中每⼀点称为像素(pixel),像素是数字图像中的基本单位。⼀幅m×n⼤⼩的图像,是由m×n个明暗度不等的像素组成的。
数字图像中各个像素所具有的明暗程度由灰度值(gray level)所标识。
灰度是指⿊⽩图像中点的颜⾊深度,范围⼀般从0到255,⽩⾊为255 ,⿊⾊为0。⽽由⿊到⽩之间的明暗度均匀地划分为256个等级。故⿊⽩图⽚也称灰度图像,在医学、图像识别领域有很⼴泛的⽤途对于⿊⽩图像,每个像素⽤⼀个字节数据来表⽰,⽽在彩⾊图像中,每个像素需⽤三个字节数据来表述。彩⾊图像可以分解成红(R)、绿(G)、蓝(B)三个单⾊图像,任何⼀种颜⾊都可以由这三种颜⾊混合构成。在图像处理中,彩⾊图像的处理通常是通过对其三个单⾊图像分别处理⽽得到的。
(1)图像
因为Matlab是⼀个矩阵运算程序,所以它将图像存储为矩阵。在图像存储于矩阵中时,通常从图像的
左上⾓开始,由左向右,⾃上⽽下来表⽰数据。在Matlab中有两个函数采⽤这种格式显⽰图像,它们分别是image和imagesc。imshow也常⽤。
在图像存储于矩阵中时,通常从图像的左上⾓开始,由左向右,⾃上⽽下来表⽰数据。最⼤正值通常表⽰红⾊。最⼩值通常表⽰蓝⾊。
Eg:x=[1:99;2:100;3:101];imagesc(x)
EG: peaks
①图像类型
Matlab可以识别三种不同的存储和表⽰图像的技术:
●亮度(或灰度)图像。
●索引图像。
●RGB(或真彩⾊)图像。
关键概念:两个函数⽤于显⽰图像,即imagesc和image。
亮度(或灰度)图像
利⽤尺度图像函数(imagesc)可以将⼭峰函数表⽰为灰度图像。在这种⽅法中,图像的⾊彩取决于⾊图。对存储于图像矩阵中的数值进⾏标度,并将其与⼀幅已知的图相关联。图jet colormap是默认的⽅式。当显⽰的参数与实际⾊彩不相关时,这种⽅法具有较好的运⾏效果。例如:函数peaks通常⽤于⽐较⼭峰和⼭⾕的范围,但是⽤红⾊表⽰海拔⾼度并不明确,从美学的⾓度看,这是可以随意选择的。⾊图也可以提⾼图像中感兴趣的特征。
观察这样⼀个例⼦,传统的X光图像是胶⽚曝光后产⽣的结果,现如今许多X光图像不再使⽤胶⽚,⽽是被处理为数字图像,并存储在数据⽂件中。因为X光图像的亮度与颜⾊⽆关,所以根据需要可随意对⽂件进⾏操作。
Matlab中包含⼀个实例⽂件,是⼀张数字化的脊椎X光胶⽚图像,该图像适⽤于尺度图像函数显⽰。
下载⽂件:
load spine
该⽂件包含许多矩阵(查看⼯作窗⼝)。灰度矩阵被命名为X(⼤写),表⽰为
imagesc(x)
该函数所产⽣的图像的颜⾊取决于当前的colormap,其默认状态为jet。如果使⽤⾊图bone,那么这幅图看起来更像是传统的X 光图⽚:
colormap(bone)
虽然通常把图像数据视为矩阵,但这些数据不⼀定要⽤标准的图形格式存储。Matlab中包含⼀个函数imfinfo,它能够读出标准图形⽂件的数据,并确定⽂件中包含的数据类型。命令⾏为: imfinfo(‘xxx.jpg’)
为了从这个图形⽂件中创建Matlab矩阵,使⽤图像读取函数imread,并给结果赋予变量名:
X=imread(‘mimas.jpg’);
imagesc(X)
索引图像
当图像的颜⾊很重要时,创建图像的技术称为索引图像。此时,矩阵不再是亮度值的列表。⽽是颜⾊的列表。所创建的图像更像是⼀幅由数字标出各区域颜⾊的图画。每元素包含⼀个与颜⾊对应的数字。颜⾊列表在另⼀个称为⾊图的n×3矩阵中,它定义n种不同的颜⾊,每种颜⾊⽤红、绿、蓝三原⾊来表⽰。每⼀幅图像有⾃⼰的定制⾊图,也可以使⽤内置的⾊图。
考虑⼀个内置的有关狒狒的样本图像,利⽤下⾯的命令获得:
load mandrill
⽂件包含索引矩阵X和⾊图map(检查⼯作窗⼝确认这些⽂件已经被下载;图像的名称通常⽤来对Matlab程序的存储)。函数image⽤于显⽰索引图像:
image(X)
colormap(map)
Matlab图像填满整个窗⼝显⽰,所以图像看上去有些扭曲。利⽤命令axis可以强制按正确的⽐例显⽰:
axis image
函数image和imagesc类似,然⽽,它们会给出不同的结果。在亮度图像中,⾊图gray与存储的⾊彩并不对应。确定被显⽰图像的⽂件类型⾮常重要,这有助于选择最佳的图像显⽰⽅式。索引图像通常以
GIF图⽚格式存储。但是,当使⽤函数imfinfo指定了⽂件参数后,⽂件格式就不会是这样。
真彩⾊(RGB)图像
第三种图像存储技术是将图像数据存储于m×n×3的三维矩阵中。三维矩阵包含⾏、列和页等三部分。真彩⾊图像⽂件包含三个页,每个页对应红、绿、蓝中的⼀种颜⾊亮度。真彩⾊图像⽂件包含三个页,每个页对应红、绿、蓝中的⼀种颜⾊亮度。
读写图像⽂件
读图像信息
①将图像信息读⼊matlab的最简单的⽅法可能是利⽤交互式的import wizard。在当前⽬录窗⼝中,只要双击要输⼊的图像⽂件名即可。
②对于⼤多数标准的图像格式⽽⾔,例如.jpg或.tif,函数imread是⽐较⽅便的⽅法。
③如果⽂件是.mat或者.dat格式,那么,调⽤函数load是最简单的输⼊数据的⽅法。对于.mat⽂件,可以不包括扩展名.mat。然⽽,对于.dat⽂件,则需要包含扩展名.dat。
load
以下是下载内置图像⽂件的常⽤⽅法以及实现在当前⽬录中输⼊图像矩阵和⾊图的命令。