matlab实验三、四、五、六(2012-2013-1)

合集下载

高等数学:MATLAB实验

高等数学:MATLAB实验
以上两种格式中的x、y都可以是表达式.plot是绘制二维 曲线的基本函数,但在使用 此函数之前,需先定义曲线上每一 点的x及y的坐标.
MATLAB实验
2.fplot绘图命令 fplot绘图命令专门用于绘制一元函数曲线,格式为:
fplot('fun',[a,b]) 用于绘制区间[a,b]上的函数y=fun的图像.
MATLAB实验 【实验内容】
MATLAB实验
由此可知,函数在点x=3处的二阶导数为6,所以f(3)=3为 极小值;函数在点x= 1处的二阶导数为-6,所以f(1)=7为极大值.
MATLAB实验
例12-10 假设某种商品的需求量q 是单价p(单位:元)的函 数q=12000-80p,商 品的总成本C 是需求量q 的函数 C=25000+50q.每单位商品需要纳税2元,试求使销售 利润达 到最大的商品单价和最大利润额.
MATLAB实验
MATLAB实验
MATLAB实验
MATLAB实验
MATLAB实验
MATLAB实验
MATLAB实验
MATLAB实验
MATLAB实验 实验九 用 MATLAB求解二重积分
【实验目的】 熟悉LAB中的int命令,会用int命令求解简单的二重积分.
MATLAB实验
【实验M步A骤T】 由于二重积分可以化成二次积分来进行计算,因此只要
MATLAB实验
MATLAB实验
MATLAB实验
MATLAB实验
MATLAB实验
实验七 应用 MATLAB绘制三维曲线图
【实验目的】 (1)熟悉 MATLAB软件的绘图功能; (2)熟悉常见空间曲线的作图方法.
【实验要求】 (1)掌握 MATLAB中绘图命令plot3和 mesh的使用; (2)会用plot3和 mesh函数绘制出某区间的三维曲线,线型

MATLAB实验报告(四份!!!)

MATLAB实验报告(四份!!!)

0380160815880001449451490168779983287916534749293454515731] >> double(x) ans = -33.5325 60.6078 -54.7098 27.3192 实验三 MATLAB 绘图
一 实验环境 计算机 MATLAB 软件 二 实验目的 1. 掌握 MATLAB 的基本绘命令。 2. 掌握运用 MATLAB 绘制一维、二维、三维的图形方法。 3. 给图形加以修饰。 三 预备知识 特殊的二维图形函数有:直方图、柄图、阶梯图、饼图、频数累计柱状 图、极坐标图 四 实验内容和步骤
3.创建一个 3x3 矩阵,并求其转置,逆矩阵。 >> A=magic(3) A= 8 3 4 >> A' ans = 8 1 6 >> inv(A) 3 5 7 4 9 2 1 5 9 6 7 2
ans = 0.1472 -0.0611 -0.0194 -0.1444 0.0222 0.1889 0.0639 0.1056 -0.1028
3. 画出 y=的曲线(x(-5,5)) 。在这曲线上加入相同区间里的 y=的曲线,并且采用绿色折 线标识。 >> x=linspace(-5,5,100); >> y=x.^2; >> plot(x,y) >> hold on >> z=x.^(1/3); >> plot(x,z,'g--')
4. 在同一窗口不同坐标系里分别绘出 y1=sinx,y2=cosx,y3=cinh(x),y4=cosh(x)4 个图形。 >> x=linspace(0,2*pi,30); >> subplot(2,2,1);plot(x,sin(x)); >> subplot(2,2,2);plot(x,cos(x)); >> subplot(2,2,3);plot(x,sinh(x)); >> subplot(2,2,4);plot(x,cosh(x));

matlab实验内容答案

matlab实验内容答案

实验报告说明:matlab 课程实验需撰写8个实验报告,每个实验报告内容写每次实验内容中标号呈黑体大号字显示的题目。

第一次实验内容:实验一 MATLAB 运算基础一、实验目的1.熟悉启动和退出MATLAB 的方法。

2.熟悉MATLAB 命令窗口的组成。

3.掌握建立矩阵的方法。

|4.掌握MATLAB 各种表达式的书写规则以及常用函数的使用。

二、实验内容1.先求下列表达式的值,然后显示MATLAB 工作空间的使用情况并保存全部变量。

(1)22sin 8511z e︒=+ (2)12ln(2z x =,其中2120.455i +⎡⎤=⎢⎥-⎣⎦(3)0.30.33sin(0.3), 3.0, 2.9, 2.8,,2.8,2.9,3.02a ae e z a a --=+=--- 提示:利用冒号表达式生成a 向量,求各点的函数值时用点乘运算。

(4)2220141122123t t z t t t t t ⎧≤<⎪=-≤<⎨⎪--≤<⎩,其中t =0::】提示:用逻辑表达式求分段函数值。

2.已知12344347873657A -⎡⎤⎢⎥=⎢⎥⎢⎥⎣⎦,131203327B -⎡⎤⎢⎥=⎢⎥⎢⎥-⎣⎦求下列表达式的值:(1) A+6=B 和A-B+I(其中I 为单位矩阵)。

(2) A*B 和A.*B 。

(3) A^3和A^.3 。

(4) A/B 和B\A 。

(5)[A ,B]和[A([1,3],;);B^2] 。

!3.设有矩阵A 和B12345678910111213141516171819202122232425A ⎡⎤⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎣⎦, 30161769023497041311B ⎡⎤⎢⎥-⎢⎥⎢⎥=-⎢⎥⎢⎥⎢⎥⎣⎦(1) 求它们的乘积C 。

(2) 将矩阵C 的右下角3×2子矩阵赋给D(3) 查看MATLAB 工作空间使用情况。

4.完成下列操作:(1)求[100,999]之间能被21整除的数的个数。

matlab实验报告总结精选

matlab实验报告总结精选

matlab实验报告总结电气工程学院自动化102班 2012年12月21日实验一 MATLAB环境的熟悉与基本运算一、实验目的1.熟悉MATLAB开发环境2.掌握矩阵、变量、表达式的各种基本运算二、实验基本知识1.熟悉MATLAB环境MATLAB桌面和命令窗口、命令历史窗口、帮助信息浏览器、工作空间浏览器、文件和搜索路径浏览器。

2.掌握MATLAB常用命令变量与运算符变量命名规则如下:变量名可以由英语字母、数字和下划线组成变量名应以英文字母开头长度不大于31个区分大小写MATLAB中设置了一些特殊的变量与常量,列于下表。

MATLAB运算符,通过下面几个表来说明MATLAB的各种常用运算符表2 MATLAB算术运算符表3 MATLAB关系运算符表4 MATLAB逻辑运算符表5 MATLAB特殊运算的一维、二维数组的寻访表6 子数组访问与赋值常用的相关指令格式的基本运算表7 两种运算指令形式和实质内涵的异同表的常用函数表8 标准数组生成函数表9 数组操作函数三、实验内容1、新建一个文件夹2、启动,将该文件夹添加到MATLAB路径管理器中。

3、保存,关闭对话框4、学习使用help命令,例如在命令窗口输入help eye,然后根据帮助说明,学习使用指令eye5、学习使用clc、clear,观察command window、command history和workspace等窗口的变化结果。

6、初步程序的编写练习,新建M-file,保存,学习使用MATLAB的基本运算符、数组寻访指令、标准数组生成函数和数组操作函数。

注意:每一次M-file的修改后,都要存盘。

练习A:help rand,然后随机生成一个2×6的数组,观察command window、command history和workspace等窗口的变化结果。

学习使用clc、clear,了解其功能和作用。

答:clc是清除命令窗体内容 clear是清除工作区间输入C=1:2:20,则C表示什么?其中i=1,2,3,?,10。

Matlab实验报告

Matlab实验报告

实验结果及分析实验1:程序如下x=1:10y=2*x;plot(x,y)仿真结果:实验结果分析:仿真结果是条很规则的直线,X轴和Y轴一一对应,清楚明了,而序又特别简单。

所以用Maltab 软件很方便地画出规则的直线,方便研究。

实验结果及分析1、A=2、A=1A=实验结果及分析实验三 Matlab在信号与系统中的应用实验名称实验1、掌握信号与系统课程中基本知识的Matlab编程、仿真方法目的实验原理实验1程序:b=[1];a=[1 1];p=;t=0:p:5;x=exp(-3*t);subplot(1,2,1);impulse(b,a,0:p:5);title('冲激响应');subplot(1,2,2);step(b,a,0:p:5);title('阶跃响应');实验内容<设计性实验>1、用MATLAB在时域中编程求解y′(t)+y(t)=f(t), f(t)= exp(-3t)ε(t)的冲激响应、阶跃响应。

在simulink仿真环境下,设计系统框图,分析系统的冲激响应、阶跃响应。

<设计性实验>(选做)2、用MATLAB在时域中编程求解y′(t)+y(t)=f(t), f(t)=(1+exp(-3t))ε(t)的冲激响应、阶跃响应,要求用conv编程实现系统响应。

在simulink仿真环境下,设计系统框图,分析系统的冲激响应、阶跃响应。

实验结果及分析实验1仿真结果:simulink仿真环境下冲激响应阶跃响应实验名称实验四 Matlab在数字信号处理中的应用实验结果及分析实验1仿真结果:6khz12kHZ。

matlab实验报告(实验3)

matlab实验报告(实验3)

开课学院及实验室:机电学院2012年11 月30日(1)、利用逐个输入法、冒号生成法以及定数线性采样法创建以下一维数组:X1=[1,2,3,4,5,6,7,8,9,10](2)、利用冒号生成法创建以下数组:X2=(1,2,3,4,9,8,7,6,5)(3)、利用定数对数生成法创建一个第一个元素为10,最后一个元素为100,元素个数为51的一维数组X3。

2、一维数组子数组的寻访和赋值以冒号生成法创建一个第一个元素为0,步长为0.1,最后一个元素为2的一维数组X4,并写出寻访或赋值的以下指令:a、寻访X4的第6个元素;b、同时寻访X4的第2、5、7个元素;c、寻访前3个元素组成的子数组;d、寻访除前3个元素外的全部的其他元素;e、由后三个元素倒排构成的子数组;f、由大于0.5的元素构成的子数组;g、把第三个元素重新赋值为0;把当前x数组的第一、四个元素都赋值为1。

3、二维数组的创建,子数组的寻访和赋值创建一个M文件(文件名为myMatrix.m),定义一个二维数组A,第一行为11至15、30至26共10个元素,第二行为1~10共10个元素。

然后运行改M文件,生成数组AM,并按以下方式寻访该数组:(1)寻访A的第一行;(2)寻访A的第三列;(3)同时寻访A的第三列和第五列;(4)把A的各列按自左至右的次序,首尾相接生成一个“一维长列”;(5)把A的第1行第1列、第2行第2列以及第1行第5列的元素重新赋值为10、20、30;(6)把A的第二行赋值为11~20。

4、标准数组的生成和数组操作函数生成以下数组或矩阵:(1)长度为4的全1行数组和4×4的全1行数组;(2)5阶单位阵;(3)生成一矩阵A,第一行为1、2,第二行为3、4;并使用diag函数生成A的对角线元素所组成的对角阵。

(4)生成一维数组A,其值为1~10,并使用reshape函数把其重排成2×5的数组B;(5)使用flipdim和fliplr函数对B进行翻转操作,从返回结果观察和总结各个函数的作用。

MATLAB实验

MATLAB实验

MATLAB实验一:MATLAB语言基本概念实验实验目的:1. 熟悉MATLAB语言及使用环境;2.掌握MATLAB的常用命令;3.掌握MATLAB的工作空间的使用;4.掌握MATLAB的获得帮助的途径。

5.掌握科学计算的有关方法,熟悉MATLAB语言及其在科学计算中的运用;6.掌握MATLAB的命令运行方式和M文件运行方式;7.掌握矩阵在MATLAB中的运用。

实验方案分析及设计:本次实验主要目的是了解MATLAB的使用环境,以及常用的一些命令的使用;了解矩阵在MATLAB实验中的具体运用,以及相关的一些符号命令的使用。

实验器材:电脑一台,MATLAB软件实验步骤:打开MATLAB程序,将实验内容中的题目依次输入MATLAB中,运行得到并记录结果,最后再对所得结果进行验证。

实验内容及要求:1.熟悉MATLAB的菜单和快捷键的功能2.熟悉MATLAB的命令窗口的使用3.熟悉常用指令的使用format clc clear help lookfor who whos 4.熟悉命令历史窗口的使用5. 熟悉MATLAB工作空间的功能将工作空间中的变量保存为M文件,并提取该文件中的变量6.熟悉MATLAB获取帮助的途径将所有plot开头的函数列出来,并详细给出plotfis函数的使用方法1. 输入 A=[7 1 5;2 5 6;3 1 5],B=[1 1 1; 2 2 2;3 3 3],在命令窗口中执行下列表达式,掌握其含义:A(2, 3) A(:,2) A(3,:) A(:,1:2:3)A(:,3).*B(:,2) A(:,3)*B(2,:) A*BA.*BA^2 A.^2 B/A B./AA=[7 1 5;2 5 6;3 1 5]7 1 52 5 63 1 5>> B=[1 1 1; 2 2 2;3 3 3]1 1 12 2 23 3 3>> A(2, 3)6>> A(:,2)151>> A(3,:)3 1 5>> A(:,1:2:3)7 52 63 5>> A(:,3).*B(:,2)51215>> A(:,3)*B(2,:)10 10 1012 12 1210 10 10>> A*B24 24 2430 30 3020 20 20>> A.*B7 1 54 10 129 3 15>> A^266 17 6642 33 7038 13 46>> A.^249 1 254 25 369 1 25>> B/A0.1842 0.2105 -0.23680.3684 0.4211 -0.47370.5526 0.6316 -0.7105>> B./A0.1429 1.0000 0.20001.0000 0.4000 0.33331.0000 3.0000 0.60002.输入 C=1:2:20,则 C (i )表示什么?其中 i=1,2,3, (10)1到19差为2,i 代表公差3. 试用 help 命令理解下面程序各指令的含义:cleart =0:0.001:2*pi;subplot(2,2,1);polar(t, 1+cos(t))subplot(2,2,2);plot(cos(t).^3,sin(t).^3)subplot(2,2,3);polar(t,abs(sin(t).*cos(t)))subplot(2,2,4);polar(t,(cos(2*t)).^0.5)4计算矩阵⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡897473535与⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡638976242之和。

Matlab实验三答案

Matlab实验三答案

Matlab实验三答案实验三 MATLAB语⾔的程序设计⼀、实验⽬的:1、熟悉MATLAB程序编辑与设计环境2、掌握各种编程语句语法规则及程序设计⽅法3、函数⽂件的编写和设计4、了解和熟悉跨空间变量传递和赋值⼆、实验基本知识:1、程序流程控制语句for循环结构语法:for i=初值:增量:终值语句1……语句nend说明:1.i=初值:终值,则增量为1。

2.初值、增量、终值可正可负,可以是整数,也可以是⼩数,只须符合数学逻辑。

while 循环结构语法:while 逻辑表达式循环体语句end说明:1、whiIe结构依据逻辑表达式的值判断是否执⾏循环体语勾。

若表达式的值为真,执⾏循环体语句⼀次、在反复执⾏时,每次都要进⾏判断。

若表达式的值为假,则程序执⾏end之后的语句。

2、为了避免因逻辑上的失误,⽽陷⼊死循环,建议在循环体语句的适当位置加break语句、以便程序能正常执⾏。

(执⾏循环体的次数不确定;每⼀次执⾏循环体后,⼀定会改变while 后⾯所跟关系式的值。

)3、while循环也可以嵌套、其结构如下:while逻辑表达式1循环体语句1while逻辑表达式2循环体语句2end循环体语句3endelse if 表达式2(可选)语句2else(可选)语句3endend说明:1.if结构是⼀个条件分⽀语句,若满⾜表达式的条件,则往下执⾏;若不满⾜,则跳出if结构。

2.else if表达式2与else为可选项,这两条语句可依据具体情况取舍。

3.注意:每⼀个if都对应⼀个end,即有⼏个if,记就应有⼏个end。

switch-case结构语法:switch表达式case常量表达式1语句组1case常量表达式2语句组2……otherwise语句组nend说明:1.switch后⾯的表达式可以是任何类型,如数字、字符串等。

2.当表达式的值与case后⾯常量表达式的值相等时,就执⾏这个case后⾯的语句组如果所有的常量表达式的值都与这个表达式的值不相等时,则执⾏otherwise后的执⾏语句。

matlab实验书

matlab实验书

MATLAB程序设计语言实验教学大纲(实验课程)◆课程编号:131089◆课程英文名称:Experiment of MATLAB Language◆课程类型:☐通识通修☐通识通选☐学科必修☐学科选修☐跨学科选修☐专业核心☑专业选修(学术研究)☐专业选修(就业创业)◆适用年级专业(学科类):三年级通信工程、电子信息工程、生物医学工程◆先修课程:C语言程序设计◆总学分:0.5◆总学时:18一、课程简介与教学目标《MATLAB程序设计语言实验》是配合电子信息工程和通信工程专业的专业选修课——《MATLAB程序设计语言》而开设的实验课程。

上机实验操作是十分重要的环节,只有通过上机实习,才能真正领会仿真技术的实现方法和MATLAB软件的强大功能,才能更好地应用于今后从事的生产和研究工作中。

二、教学方式与方法采用以上机练习为主的教学方式,通过讲解实验重点及其中包含的理论知识引导学生获得正确的实验和理论思路,从而成为理论课的有益补充,使理论和实践相结合。

三、教学重点与难点(一)教学重点教学重点是MATLAB软件的基本操作方法、MATLAB进行科学计算、图形绘制以及MATLAB的应用领域和GUI的界面设计方法。

(二)教学难点教学难点在于灵活运用各种MATLAB的程序设计方法以及调试。

四、学时分配计划五、教材与教学参考书(一)教材自编MATLAB程序设计语言实验指导书(二)教学参考书1.John G.Proakis 等著,刘树棠译.现代通信系统(MATLAB 版)(第二版) 电子工业出版社2.郭文斌,桑林.通信原理—基于MATLAB 的计算机仿真 北京邮电大学出版社六、课程考核与成绩评定【考核类型】☐ 考试 ☑ 考查【考核方式】☐ 开卷(Open-Book ) ☐ 闭卷(Close-Book ) ☐ 项目报告/论文☑ 其它: 上机 (填写具体考核方式)【成绩评定】平时成绩占(60-70)%,考试成绩占(30-40)%七、课程内容概述实验一MATLAB 基本操作(一)教学要求1、了解MATLAB 软件的使用方法以及系统组成2、掌握MATLAB 的工作空间、搜索路径以及一些常用的命令3、掌握表达式的构成4、掌握矩阵的各种输入方法、逻辑运算符和关系运算符以及矩阵的操作方法 (二)知识点提示主要知识点:矩阵的操作符以及各种操作方法 重点:矩阵输入的各种方法、各种矩阵运算 难点:矩阵的操作以及各种基本数学函数 (三)教学内容1.1 建立工作目录MYBIN 和MYDATA 。

MATLAB实验报告

MATLAB实验报告

MATLAB实验报告专业班级学号姓名实验一Matlab环境及命令窗口的使用实验目的与要求:熟练掌握MA TLAB的启动和退出;熟悉MATLAB的命令窗口;熟悉常用选单和工具栏;熟悉MA TLAB桌面的其它窗口。

实验内容:启动MATLAB,熟悉各环境窗口及作用,熟悉file、edit、View等菜单下各选项的功能;熟悉工具栏中各项的功能;打开演示程序(demo),开始其中的演示程序;退出MA TLAB(exit、quit)。

在命令窗口中,输入简单的命令操作;打开函数编辑窗,编写简单的程序并保存;程序:>> x1=sqrt(100),x2=5.48,y=9/x2x1 =10x2 =5.4800y =1.6423>>demo演示框左侧是库目录,选定demo下的图形类(Graphics)按钮,双击演示框右边的栏里的function of complex variable选项,就会出现如图中的演示框。

此例为复数Z的三次方:Z^3。

实验二Matlab数值计算实验目的与要求:熟练掌握matlab变量的使用;熟练掌握矩阵的创建;熟悉掌握matlab 的矩阵和数组的运算;熟悉matlab多项式的运算。

实验内容:给2×3阶矩阵变量a赋值(注意逗号与分号的使用),取其第2行第2个元素,取其第2行元素,取其第1列和第3列的元素;计算a/3、5*a、a+2等的值;程序:>> a=[7,9,5;5,9,4]a =7 9 55 9 4>> a=[7,9,5;5 9 4]a =7 9 55 9 4>> b=a([2],[2])b =9>> c=a([2],:)c =5 9 4>> d=a(:,[1,3])d =7 55 4>> e=a/3e =2.33333.0000 1.66671.6667 3.0000 1.3333>> 5*aans =35 45 2525 45 20>> a+2ans =9 11 77 11 62、生成2×3阶的全1矩阵x和3×3魔方矩阵y,计算a+x,x*y,x/y,y^2,2^a;a.*x, a.\x,y.^2,2.^a 的值。

matlab实验报告

matlab实验报告

matlab实验报告实验报告:Matlab实验分析1. 实验目的本实验旨在通过Matlab软件完成一系列数值计算和数据分析的任务,包括绘制曲线、解方程、矩阵运算等,以加深对Matlab软件的理解和掌握。

2. 实验内容2.1 绘制函数曲线首先,我们通过在Matlab中输入函数的表达式来绘制函数曲线。

例如,我们可以输入y = sin(x)来绘制正弦函数的曲线。

另外,我们还可以设置曲线的颜色、线型和坐标轴范围等。

2.2 解方程接下来,我们使用Matlab来解方程。

对于一元方程,我们可以使用solve函数来求出方程的解。

例如,我们输入syms x; solve(x^2 - 2*x - 8)来解方程x^2 - 2x - 8 = 0。

而对于多元方程组,我们可以使用solve函数的向量输入形式来求解。

例如,我们输入syms x y; solve(x^2 + y^2 - 1, x - y - 1)来求解方程组x^2 + y^2 - 1 = 0和x - y - 1 = 0的解。

2.3 矩阵运算Matlab也可以进行矩阵运算。

我们可以使用矩阵相乘、相加和取逆等运算。

例如,我们可以输入A = [1 2; 3 4]和B = [5 6;7 8]来定义两个矩阵,然后使用A * B来计算它们的乘积。

3. 实验结果与分析在本实验中,我们成功完成了绘制函数曲线、解方程和矩阵运算等任务。

通过Matlab软件,我们可以快速、准确地进行数值计算和数据分析。

使用Matlab的高级函数和工具箱,我们可以更方便地处理复杂的数值计算和数据分析问题。

4. 实验总结通过本次实验,我们进一步加深了对Matlab软件的理解和掌握。

Matlab提供了丰富的函数库和工具箱,适用于各种不同的数值计算和数据分析任务。

在日常科研和工程实践中,Matlab是一个非常强大和方便的工具,可以帮助我们更高效地完成任务。

matlab上机实验心得

matlab上机实验心得

MATLAB上机实验心得1. 引言在学习MATLAB课程期间,我们进行了一系列的上机实验。

通过这些实验,我深刻体会到了MATLAB在数学建模和数据分析方面的强大功能。

本文将详细介绍我在实验中的学习心得和体会,并分享一些使用MATLAB进行数据处理和可视化的技巧。

2. 实验一:MATLAB基础在第一次实验中,我们掌握了MATLAB的基本操作和语法。

通过编写简单的脚本,我学会了如何定义变量、进行算术运算、使用条件语句和循环结构等。

我还学会了如何使用MATLAB自带的函数库来解决常见的数学问题。

这次实验让我对MATLAB有了初步的认识,并为后续实验打下了坚实的基础。

3. 实验二:数据处理与可视化在第二次实验中,我们探索了MATLAB在数据处理和可视化方面的能力。

我们使用了一些常见的数据处理函数,如读取文件、筛选数据、计算统计量等。

我们还学习了如何使用plot函数绘制线图、scatter函数绘制散点图以及histogram函数绘制直方图等。

通过这次实验,我意识到MATLAB在数据处理和可视化方面的高效和便捷。

使用MATLAB,我们可以快速地对大量数据进行处理和分析,并通过可视化方式直观地展示数据的特征和规律。

4. 实验三:数学建模第三次实验是最具挑战性的一次,我们需要运用MATLAB解决实际问题并进行数学建模。

在实验中,我们学习了如何将实际问题转化为数学模型,并使用MATLAB求解。

我们通过编写脚本来解决最优化问题、微分方程求解等。

这次实验让我深刻理解了数学建模的重要性,并提高了我的问题解决能力。

MATLAB 的强大计算能力和丰富的函数库为数学建模提供了极大的便利。

5. 实验四:图像处理在第四次实验中,我们学习了MATLAB在图像处理方面的应用。

我们掌握了如何读取、显示、修改和保存图像。

我们还学会了一些常见的图像处理算法,如灰度变换、直方图均衡化、滤波器等。

这次实验让我对图像处理有了初步的认识,并意识到MATLAB在该领域有着广泛应用。

MATLAB原理应用实验报告第三章(符号运算)

MATLAB原理应用实验报告第三章(符号运算)

《MATLAB原理及应用》实验报告第三章MATLAB的符号运算一.实验目的1、掌握符号对象的命名方法2、掌握符号表达式的基本运算3、掌握符号级数的求法二.实验设备计算机、MATLAB软件三.实验内容1.确定符号表达式的变量为了简化符号对象的操作和计算,MATLAB为用户提过了findsym命令。

r=findsym(S)确定符号表达式或者矩阵S中自由符号变量r=findsym(S,n)确定符号表达式或者矩阵S中靠近x最近的n个独立符号变量。

【实验3-1】使用MA TLAB的命令确定符号表达式的变量。

在MATLAB的命令窗口中输入下例内容:>> syms a x y z t确定下面简单符号表达式中的符号变量信息:>>findsym(sin(pi*t))ans =t确定下面简单符号表达式中的符号变量信息:>>findsym(x+i*y-j*z)ans =x, y, z确定下面简单符号表达式中的符号变量信息:>>findsym(a+y,1)ans =y2.符号表达式元算1.符号表达式的四则运算表达式的四则运算与数字运算一样,用+、-、/、运算符实现,其运算结果依然是一个符号表达式。

【实验3-2】在MATLAB的命令窗口中输入下例内容:>>f=sym('2*x^2+3*x-5');%定义符号表达式g=sym('x^2-x+7');f+gans =3*x^2+2*x+2ans =3*x^2+2*x+2>> f^gans =(2*x^2+3*x-5)^(x^2-x+7)3.符号表达式的提取分子和分母运算如果符号表达式是一个有理分式或可以展开为有理分式,可以可利用numden函数来提取符号表达式的分子或分母。

期一般调用格式为[n,d]=numden函数来提取符号表达式该函数提取的符号表达式s的分子和分母,分别将它们存放在n和d中。

MATLAB实验三(1)程序设计

MATLAB实验三(1)程序设计

实验三(1)、MA TLAB程序设计一、实验目的1、掌握建立和执行M文件的方法2、掌握利用if语句和switch语句实现选择结构的方法二、实验内容及步骤1、输入一个百分制成绩,要求输出成绩等级A、B、C、D、E。

其中90分~100分为A,80分~89分为B,70分~79为C,60分~69分为D,60分以下为E。

要求:1)分别用if语句和switch语句实现2)对不合理的成绩应输出出错信息“输入的成绩不合理”(若成绩出现小数,则只能是“.5”)switch语句clear all;mark=input('请输入分数');switch markcase num2cell(90:0.5:100)result='A';case num2cell(80:0.5:89.5)result='B';case num2cell(70:0.5:79.5)result='C';case num2cell(60:0.5:69.5)result='D';case num2cell(0:0.5:59.5)result='E';otherwiseresult='输入成绩不合理';endresultif语句clear all;a=input('请输入分数');if rem(a,0.5)result='输入有误!';elseif a<=100&&a>=90result='A';elseif a<90&&a>=80result='B';elseif a<80&&a>=70result='C';elseif a<70&&a>=60result='D';elseif a<60&&a>=0result='E';elseresult='输入有误!';endresult2、设计程序,完成两位数的加、减、乘、除四则运算,即产生两个两位随机整数,再输入一个运算符号,做相应的运算,显示相应的结果,并要求结果显示类似于“a=x+y=34”。

matlab刘卫国附录实验3、4、5

matlab刘卫国附录实验3、4、5

实验三1. a=[-5 -3 1 2 2.5 3 5];for i=1:6x=a(1,i)if x<0&x~=3y=x^2+x-6elseif x>=0&x<5&x~=2&x~=3y=x^2-5*x+6else y=x^2-x-1endend2.用if语句编写grade=input('please input the grade which is between 0 and 100'); a=floor(grade/10);if a>=0&a<6disp('E')elseif a>=6&a<7disp('D')elseif a>=7&a<8disp('C')elseif a>=8&a<9disp('B')elseif a>=9&a<=10disp('A')else disp('error!')end用swich语句编写grade=input('please input the grade which is between 0 and 100'); if grade<0disp('error!')else switch fix(grade/10);case num2cell(0:5)disp('E')case{6}disp('D')case{7}disp('C')case{8}disp('B')case{9,10}disp('A')otherwisedisp('error!')endendif t>120y=84*120+(t-120)*84*1.15elseif t<60y=t*84-700else y=t*84end4. a=10+90*rand(1,2);a1=a(1)a2=a(2)b=fix(4*rand(1,1));if b(1)==0disp('运算法则为+')y=a1+a2elseif b(1)==1disp('运算法则为-')y=a1-a2elseif b(1)==2disp('运算法则为*')y=a1*a2else disp('运算法则为/')y=a1/a2end5. a=100*rand(5,6)n=input('please input the no. of the line');if n==1| n==2| n==3| n==4| n==5disp(a(n,:))else disp(a(5,:))disp('error!')end实验四1.用循环语句y=0;i=0;for i=1:n(1,j);y=y+1/(i^2);z=sqrt(6*y);enddisp('∏的值为:')zy=0;end用向量运算n=[100 1000 10000]for j=1:3i=1:n(1,j);f=1./(i.^2);y=sum(f);z=sqrt(6*y);disp('∏的值为:')zy=0;end2. n=1;y=0;while y<3y=y+1/n;n=n+2;endny-1/n3. a=input('please enter a')b=input('please enter b')x=1;n=0;while abs(x-a/(b+x))>0.00001if n<=500x=a/(b+x);n=n+1;endendxr=[(-b-sqrt(b^2+4*a))/2 (-b+sqrt(b^2+4*a))/2] s=r-x4. clcf(1)=1;f(2)=0;f(n)=f(n-1)-2*f(n-2)+f(n-3);enddisp(['maximum is ',num2str(max(f))])disp(['minimum is ',num2str(min(f))])disp(['sum is ',num2str(sum(f))])disp(['正数个数为',num2str(length(find(f>0)))])disp(['负数个数为',num2str(length(find(f<0)))])disp(['零的个数为',num2str(length(find(f==0)))])5. j=0;s=0;for n=2:50a=n*(n+1)-1;for k=2:aif rem(a,k)~=0continueendbreakendif k==aj=j+1;s=s+a;endendjs实验五1.function:function[e,l,s,c]=fushu(z)s=sin(z)c=cos(z)命令文件M:z=input('请输入复数');[e,l,s,c]=fushu(z)2.function:function x=qiujie(a,b)x=inv(a)*b%线性方程组求解命令文件M:clcm1=input('please enter the value of m1'); m2=input('please enter the value of m2'); ti=input('please enter the value of theta'); g=9.8;t=ti*pi/180;a=[m1*cos(t),-m1,-sin(t),0m1*sin(t),0,cos(t),00,m2,-sin(t),00,0,-cos(t),1];b=[0;m1*g;0;m2*g];x=qiujie(a,b);3. for m=10:99for k=2:mif rem(m,k)~=0continueendbreakendif k==ma=fix(m/10);b=m-10*a;n=10*b+a;for j=2:nif rem(n,j)~=0continueendbreakendif j==nmendend4. function:function f=fx(x)a=0.1+(x-2).^2;b=0.01+(x-3).^4;f=1./a+1./b;命令文件:clcx=input('输入矩阵x=')f=fx(x)5.①f(n)=n+10*log(n^2+5); y=f(40)/(f(30)+f(20))②for n=1:30g1(n)=n*(n+1);endf30=sum(g1)for n=1:20g2(n)=n*(n+1);endf20=sum(g2)for n=1:40g3(n)=n*(n+1);endf40=sum(g3)y=f40/(f20+f30)。

Matlab实验报告

Matlab实验报告

实验一:Matlab操作环境熟悉一、实验目的1.初步了解Matlab操作环境。

2.学习使用图形函数计算器命令funtool及其环境。

二、实验内容熟悉Matlab操作环境,认识命令窗口、内存工作区窗口、历史命令窗口;学会使用format命令调整命令窗口的数据显示格式;学会使用变量和矩阵的输入,并进行简单的计算;学会使用who和whos命令查看内存变量信息;学会使用图形函数计算器funtool,并进行下列计算:1.单函数运算操作。

求下列函数的符号导数(1)y=sin(x); (2) y=(1+x)^3*(2-x);求下列函数的符号积分(1)y=cos(x);(2)y=1/(1+x^2);(3)y=1/sqrt(1-x^2);(4)y=(x1)/(x+1)/(x+2)求反函数(1)y=(x-1)/(2*x+3); (2) y=exp(x); (3) y=log(x+sqrt(1+x^2));代数式的化简(1)(x+1)*(x-1)*(x-2)/(x-3)/(x-4);(2)sin(x)^2+cos(x)^2;(3)x+sin(x)+2*x-3*cos(x)+4*x*sin(x);2.函数与参数的运算操作。

从y=x^2通过参数的选择去观察下列函数的图形变化(1)y1=(x+1)^2(2) y2=(x+2)^2 (3) y3=2*x^2 (4) y4=x^2+2 (5) y5=x^4(6) y6=x^2/23.两个函数之间的操作求和(1)sin(x)+cos(x)乘积(1)exp(-x)*sin(x) (2) sin(x)*x商(1)sin(x)/cos(x); (2) x/(1+x^2); (3) 1/(x-1)/(x-求复合函数(1)y=exp(u) u=sin(x) (2) y=sqrt(u) u=1+exp(x^2)(3) y=sin(u) u=asin(x) (4) y=sinh(u) u=-x实验二:MATLAB基本操作与用法一、实验目的1.掌握用MATLAB命令窗口进行简单数学运算。

MATLAB与控制系统仿真实验指导书

MATLAB与控制系统仿真实验指导书

《MATLAB与控制系统仿真》实验指导书(2011年第一版)西安邮电学院自动化学院2011年6月目录前言 (1)MATLAB语言实验项目 (3)实验一熟悉MATLAB集成环境与基础运算 (3)实验二 MATLAB的基本计算 (7)实验三 MATLAB图形系统 (9)实验四 MATLAB程序设计 (13)实验五 MATLAB函数文件 (15)实验六MATLAB数据处理与多项式计算 (17)实验七 SIMULINK仿真实验 (21)前言MATLAB 产品家族是美国 MathWorks公司开发的用于概念设计、算法开发、建模仿真、实时实现的理想的集成环境。

是矩阵实验室(Matrix Laboratory)的简称,是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和SIMULINK两大部分。

MATLAB由于其完整的专业体系和先进的设计开发思路,使得 MATLAB 在多种领域都有广阔的应用空间,特别是在科学计算、建模仿真以及系统工程的设计开发上已经成为行业内的首选设计工具,它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。

MATLAB软件工具在自动化专业、测控技术与仪器和电气工程及其自动化等专业的本科生学习中,经常用来计算、仿真和设计,尤其是MATLAB软件的仿真功能,能使学生对所学知识有更加深入的理解和分析。

《MATLAB与控制系统仿真》课程,和《自动控制原理》、《现代控制理论》、《数字信号处理》、《电力电子技术》等重要的专业课程相互支撑、相辅相成,同时也有利于学生完成课程设计和毕业设计等实践教学环节。

matlab实习实验报告

matlab实习实验报告

实验报告: 分支语句一、 实验目的: 1.掌握使用分支语句;2.掌握自上而下程序设计技术方法.二、 实验内容及要求:1.实验内容:1).编写 MATLAB 语句计算 y(t)的值⎩⎨⎧<+≥+-=0530 53)(22t t t t t y 已知 t 从-5到 5 每隔0.5取一次值。

运用循环和选择语句进行计算。

2).用向量算法解决练习 1, 比较这两个方案的耗时。

三、 设计思路:1. 用循环和选择语句进行计算:1).定义自变量t :t=-5:0.5:5;2).用循环语句实现对自变量的遍历。

3).用选择语句实现对自变量的判断,选择。

4).将选择语句置入循环语句中,则实现在遍历中对数据的选择,从而实现程序的功能。

2. 用向量法实现:1).定义自变量t :t=-5:0.5:5;2).用 b=t>=0 语句,将t>=0得数据选择出,再通过向量运算y(b)=-3*t(b).^2 + 5; 得出结果。

3).用取反运算,选择出剩下的数据,在进行向量运算,得出结果。

四、 实验程序和结果1.实验程序clear%clctic;t=-5:0.5:5;for ii=1:size(t,2)columns.if(t(ii)<0)y(ii) = 3*t(ii)^2+5;elsey(ii)= -3*t(ii)^2+5;endendfigure(1);plot(t,y);title('Plot of y(t) and its derivative----(1)');xlabel('x');ylabel('y');grid on;toc; %Read the stopwatch timer,%prints the number of seconds required for the operation. clear%clctic;t=[-5:0.5:5];b=t>=0;y(b)=-3*t(b).^2 + 5;%b=t<0;y(~b)=3*t(~b).^2 + 5;figure(2);plot(t,y);title('Plot of y(t) and its derivative----(2)');xlabel('x');ylabel('y');grid on;toc;2.实验结果:>> clear>> y_tElapsed time is 0.998095 seconds.Elapsed time is 0.338708 seconds.>>五、实验总结:本次实验分支语句的使用和自上而下的程序设计技术。

实验三MATLAB的程序设计

实验三MATLAB的程序设计
error('k>n,put in again!!');
end
ifk==0
Y=1;
elseifk==1&&n==1
Y=1;
elseifk<=n
Y=(n/k)*c(k-1,n-1);
end
程序测试:
>> c(0,0)
ans =
1
>> c(0,1)
ans =
1
>> c(3,4)
ans =
4
7,计算以下和式,并估计其求和公式以及验证:
functionY=s(n)
Y=0;
fork=1:n
Y=Y+k;
end
测试:
>> s(3)
ans =
6
functionY=s(n)
Y=0;
fork=1:n
Y=Y+k^2;
end
测试:
>> s(3)
ans =
14
functionY=s(n)
Y=0;
fork=1:n
Y=Y+k^3;
end
测试:
>> s(2)
4
>> Joseph0(7,4)
2
11,求出 之间的所有素数;
M函数文件:
functionout = nprimes(N)
A= [1:N];
A(1)=0;
i=2;
whilei<= floor(sqrt(N));
forj= 2:fix(N/i)
A(i*j) = 0;
end;
i = A(find(A>i,1));

matlab实验三、四、五、六(2012-2013-1)

matlab实验三、四、五、六(2012-2013-1)

实验三 图像的代数运算一、实验目的1.了解图像的算术运算在数字图像处理中的初步应用。

2.体会图像算术运算处理的过程和处理前后图像的变化。

二、实验原理图像的代数运算是图像的标准算术操作的实现方法,是两幅输入图像之间进行的点对点的加、减、乘、除运算后得到输出图像的过程。

如果输入图像为A(x,y)和B(x,y),输出图像为C(x,y),则图像的代数运算有如下四种形式:C(x,y) = A(x,y) + B(x,y)C(x,y) = A(x,y) - B(x,y)C(x,y) = A(x,y) * B(x,y)C(x,y) = A(x,y) / B(x,y)图像的代数运算在图像处理中有着广泛的应用,它除了可以实现自身所需的算术操作,还能为许多复杂的图像处理提供准备。

例如,图像减法就可以用来检测同一场景或物体生产的两幅或多幅图像的误差。

使用MATLAB的基本算术符(+、-、*、/ 等)可以执行图像的算术操作,但是在此之前必须将图像转换为适合进行基本操作的双精度类型。

为了更方便地对图像进行操作,MATLAB图像处理工具箱包含了一个能够实现所有非稀疏数值数据的算术操作的函数集合。

下表列举了所有图像处理工具箱中的图像代数运算函数。

表2-1 图像处理工具箱中的代数运算函数函数名功能描述Imabsdiff 两幅图像的绝对差值Imadd 两幅图像的加法Imcomplement 补足一幅图像Imdivide 两幅图像的除法Imlincomb 计算两幅图像的线性组合Immultiply 两幅图像的乘法imsubtract 两幅图像的减法使用图像处理工具箱中的图像代数运算函数无需再进行数据类型间的转换,这些函数能够接受uint8和uint16数据,并返回相同格式的图像结果。

虽然在函数执行过程中元素是以双精度进行计算的,但是MATLAB工作平台并不会将图像转换为双精度类型。

代数运算的结果很容易超出数据类型允许的范围。

例如,uint8数据能够存储的最大数值是255,各种代数运算尤其是乘法运算的结果很容易超过这个数值,有时代数操作(主要是除法运算)也会产生不能用整数描述的分数结果。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验三 图像的代数运算一、实验目的1.了解图像的算术运算在数字图像处理中的初步应用。

2.体会图像算术运算处理的过程和处理前后图像的变化。

二、实验原理图像的代数运算是图像的标准算术操作的实现方法,是两幅输入图像之间进行的点对点的加、减、乘、除运算后得到输出图像的过程。

如果输入图像为A(x,y)和B(x,y),输出图像为C(x,y),则图像的代数运算有如下四种形式:C(x,y) = A(x,y) + B(x,y)C(x,y) = A(x,y) - B(x,y)C(x,y) = A(x,y) * B(x,y)C(x,y) = A(x,y) / B(x,y)图像的代数运算在图像处理中有着广泛的应用,它除了可以实现自身所需的算术操作,还能为许多复杂的图像处理提供准备。

例如,图像减法就可以用来检测同一场景或物体生产的两幅或多幅图像的误差。

使用MATLAB的基本算术符(+、-、*、/ 等)可以执行图像的算术操作,但是在此之前必须将图像转换为适合进行基本操作的双精度类型。

为了更方便地对图像进行操作,MATLAB图像处理工具箱包含了一个能够实现所有非稀疏数值数据的算术操作的函数集合。

下表列举了所有图像处理工具箱中的图像代数运算函数。

表2-1 图像处理工具箱中的代数运算函数函数名功能描述Imabsdiff 两幅图像的绝对差值Imadd 两幅图像的加法Imcomplement 补足一幅图像Imdivide 两幅图像的除法Imlincomb 计算两幅图像的线性组合Immultiply 两幅图像的乘法imsubtract 两幅图像的减法使用图像处理工具箱中的图像代数运算函数无需再进行数据类型间的转换,这些函数能够接受uint8和uint16数据,并返回相同格式的图像结果。

虽然在函数执行过程中元素是以双精度进行计算的,但是MATLAB工作平台并不会将图像转换为双精度类型。

代数运算的结果很容易超出数据类型允许的范围。

例如,uint8数据能够存储的最大数值是255,各种代数运算尤其是乘法运算的结果很容易超过这个数值,有时代数操作(主要是除法运算)也会产生不能用整数描述的分数结果。

图像的代数运算函数使用以下截取规则使运算结果符合数据范围的要求:超出数据范围的整型数据将被截取为数据范围的极值,分数结果将被四舍五入。

例如,如果数据类型是uint8,那么大于255的结果(包括无穷大inf)将被设置为255。

注意:无论进行哪一种代数运算都要保证两幅输入图像的大小相等,且类型相同。

三、实验步骤1.图像的加法运算图像相加一般用于对同一场景的多幅图像求平均效果,以便有效地降低具有叠加性质的随机噪声。

直接采集的图像品质一般都较好,不需要进行加法运算处理,但是对于那些经过长距离模拟通讯方式传送的图像(如卫星图像),这种处理是必不可少的。

在MATLAB中,如果要进行两幅图像的加法,或者给一幅图像加上一个常数,可以调用imadd函数来实现。

imadd函数将某一幅输入图像的每一个像素值与另一幅图像相应的像素值相加,返回相应的像素值之和作为输出图像。

imadd函数的调用格式如下:Z = imadd(X,Y)其中,X和Y表示需要相加的两幅图像,返回值Z表示得到的加法操作结果。

图像加法在图像处理中应用非常广泛。

例如,以下代码使用加法操作将图2.1中的(a)、(b)两幅图像叠加在一起:I = imread('rice.png');J = imread('cameraman.tif');K = imadd(I,J);imshow(K);叠加结果如图2.2所示。

图2.1 待叠加的两幅图像图2.2 叠加后的图像效果给图像的每一个像素加上一个常数可以使图像的亮度增加。

例如,以下代码将增加图3(a)所示的RGB 图像的亮度,加亮后的结果如图3(b)所示。

RGB = imread('cameraman.tif')RGB2 = imadd(RGB,50);subplot(1,2,1);imshow(RGB);subplot(1,2,2);imshow(RGB2);图2.3 亮度增加两幅图像的像素值相加时产生的结果很可能超过图像数据类型所支持的最大值,尤其对于uint8类型的图像,溢出情况最为常见。

当数据值发生溢出时,imadd函数将数据截取为数据类型所支持的最大值,这种截取效果称之为饱和。

为了避免出现饱和现象,在进行加法计算前最好将图像转换为一种数据范围较宽的数据类型。

例如,在加法操作前将uint8图像转换为uint16类型。

2.图像的减法运算图像减法也称为差分方法,是一种常用于检测图像变化及运动物体的图像处理方法。

图像减法可以作为许多图像处理工作的准备步骤。

例如,可以使用图像减法来检测一系列相同场景图像的差异。

图像减法与阈值化处理的综合使用往往是建立机器视觉系统最有效的方法之一。

在利用图像减法处理图像时往往需要考虑背景的更新机制,尽量补偿由于天气、光照等因素对图像显示效果造成的影响。

在MATLAB中,使用imsubtract函数可以将一幅图像从另一幅图像中减去,或者从一幅图像中减去一个常数。

imsubtract函数将一幅输入图像的像素值从另一幅输入图像相应的像素值中减去,再将这个结果作为输出图像相应的像素值。

imsubtract函数的调用格式如下:Z = imsubtract(X,Y);其中,Z是X-Y操作的结果。

以下代码首先根据原始图像(如图2.4(a)所示)生成其背景亮度图像,然后再从原始图像中将背景亮度图像减去,从而生成图2.4(b)所示的图像:rice = imread('cameraman.tif')background = imopen(rice,strel('disk',15));rice2 = imsubtract(rice, background);subplot(1,2,1);imshow(rice);subplot(1,2,2);imshow(rice2);图2.4 原始图像、减去背景图像如果希望从图像数据I的每一个像素减去一个常数,可以将上述调用格式中的Y替换为一个指定的常数值,例如:Z = imsubtract(I,50);减法操作有时会导致某些像素值变为一个负数,对于uint8或uint16类型的数据,如果发生这种情况,那么imsubtract函数自动将这些负数截取为0。

为了避免差值产生负值,同时避免像素值运算结果之间产生差异,可以调用函数imabsdiff。

imabsdiff将计算两幅图像相应像素差值的绝对值,因而返回结果不会产生负数。

该函数的调用格式与imsubtract函数类似。

3. 图像的乘法运算两幅图像进行乘法运算可以实现掩模操作,即屏蔽掉图像的某些部分。

一幅图像乘以一个常数通常被称为缩放,这是一种常见的图像处理操作。

如果使用的缩放因子大于1,那么将增强图像的亮度,如果因子小于1则会使图像变暗。

缩放通常将产生比简单添加像素偏移量自然得多的明暗效果,这是因为这种操作能够更好地维持图像的相关对比度。

此外,由于时域的卷积或相关运算与频域的乘积运算对应,因此乘法运算有时也被作为一种技巧来实现卷积或相关处理。

在MATLAB中,使用immultiply函数实现两幅图像的乘法。

immultiply函数将两幅图像相应的像素值进行元素对元素的乘法操作(MATLAB点乘),并将乘法的运算结果作为输出图形相应的像素值。

immulitply 函数的调用格式如下:Z = immulitply(X,Y)其中,Z=X*Y。

例如,以下代码将使用给定的缩放因子对图2.5(a)所示的图像进行缩放,从而得到如图2.5(b)所示的较为明亮的图像:I = imread('moon.tif');J = immultiply(I,1.5);subplot(1,2,1);imshow(I);subplot(1,2,2);imshow(J);图2.5 原图和乘以因子1.5 的图像uint8图像的乘法操作一般都会发生溢出现象。

Immultiply函数将溢出的数据截取为数据类型的最大值。

为了避免产生溢出现象,可以在执行乘法操作之前将uint8图像转换为一种数据范围较大的图像类型,例如uint16。

4.图像的除法运算除法运算可用于校正成像设备的非线性影响,这在特殊形态的图像(如断层扫描等医学图像)处理中常常用到。

图像除法也可以用来检测两幅图像间的区别,但是除法操作给出的是相应像素值的变化比率,而不是每个像素的绝对差异,因而图像除法也称为比率变换。

在MATLAB中使用imdivide函数进行两幅图像的除法。

imdivide函数对两幅输入图像的所有相应像素执行元素对元素的除法操作(点除),并将得到的结果作为输出图像的相应像素值。

imdivide函数的调用格式如下:Z = imdivide(X,Y)其中,Z=X/Y。

例如,以下代码将图4所示的两幅图像进行除法运算,请将这个结果和减法操作的结果相比较,对比它们之间的不同之处:r1 = imread('cameraman.tif');I = double(r1);J= I * 0.43 + 90;r2 = uint8(J);Ip = imdivide(r1, r2);Imshow(Ip, []);除法操作的结果如图2.6所示。

图2.6 原图和减背景后的图像相除的图像效果5.图像的四则代数运算可以综合使用多种图像代数运算函数来完成一系列的操作。

例如,使用以下语句计算两幅图像的平均值:I = imread(‘rice.tif’);I2 = imread(‘cameraman.tif’);K = imdivide(imadd(I,I2),2);建议最好不要用这种方式进行图像操作,这是因为,对于uint8或uint16数据,每一个算术函数在将其输出结果传递给下一项操作之前都要进行数据截取,这个截取过程将会大大减少输出图像的信息量。

执行图像四则运算操作较好的一个办法就是使用函数imlincomb。

函数imlincomb按照双精度执行所有代数运算操作,而且仅对最好的输出结果进行截取,该函数的调用格式如下:Z = imlincomb(A,X,B,Y,C);其中,Z=A*X+B*Y+C。

MATLAB会自动根据输入参数的个数判断需要进行的运算。

例如,以下语句将计算Z=A*X+C:Z = imlincomb(A,X,C)而以下语句将计算Z=A*X+B*Y:Z = imlincomb(A,X,B,Y,)四、实验报告要求1 描述实验的基本步骤,用数据和图片给出各个步骤中取得的实验结果并进行必要的讨论。

2 必须包括原始图像及其计算处理后的图像以及相应的解释。

相关文档
最新文档