软件技术MATLAB实验手册版.docx
《软件技术MATLAB实验手册版.docx》由会员分享,可在线阅读,更多相关《软件技术MATLAB实验手册版.docx(23页珍藏版)》请在冰豆网上搜索。
软件技术MATLAB实验手册版
实验课需要我们干什么?
一、实验课前的知识点预习。
二、准备实验课演练的例题。
三、实验课后的知识的总结。
MATLAB实验一MATLAB软件环境以及环境设置
一、实验目标
1.熟悉MATLAB软件的运行环境以及界面构成。
2.熟悉MATLAB环境中命令窗口的基本操作。
3.熟悉变量的相关操作,熟悉变量的存储与读取操作。
4.熟悉MATLAB环境设置(包括搜索路径和工作空间等设置)。
5.学会应用帮助导航浏览器获得所需信息,通过MATLAB帮助,自学需要的知识。
6.熟悉MATLAB中基本运算函数。
二、实验内容及要求
1.运行MATLAB软件,观察MATLAB的界面组成。
并了解各个部分的功能。
掌握多个窗口的在软件环境中的布局等操作。
(标题栏+菜单栏+工具栏+命令窗口+历史命令窗口+当前目录窗口+工作空间)。
2.命令窗口主要用于进行MATLAB的各种命令操作。
在该窗口中,可以运行MATLAB的指令、函数、表达式以及显示除了图形外的所有运行结果。
3.命令历史窗口主要保存所有运行过的命令。
4.改变currentdirectory,在当前目录下完成save和load命令。
5.在工作空间中在工作空间中对变量进行各种操作。
6.查找和设置搜索路径,并且测试。
7.变量的赋值以及引用。
8.MATLAB基本运算函数的演练。
三、实验步骤(略)
四、训练习题
1.书上所有例题和课后习题。
2.ppt上的所有例题以及学生演练习题。
五、测试习题
1.精度计算的问题。
看如下的代码,分析:
x=0;
forn=1:
82
x=x+0.01
end
x==0.82什么结果,请解释。
x=0;
forn=1:
82
x=x+1
end
x==82什么结果,请解释。
MATLAB实验二MATLAB编程基础(上)
一、实验目标
1.熟悉一维数组二维数组的创建和引用。
2.熟悉字符数组的创建和相关函数。
3.了解struct数组和cell数组的创建和引用。
4.熟悉算术、关系和逻辑运算符的使用。
5.熟悉各种运算函数。
二、实验内容及要求
1.创建一维数组并采用各种形式引用。
2.创建二维数组并采用各种形式引用。
3.创建字符数组,调用字符数组相关函数。
(1)通过下标引用字符串中元素。
(2)取子串。
(3)倒排字符串。
(4)计算字符串中字符的个数
(5)字符串中大小写转换
(6)查找字符串中出现子串的位置
4.创建struct数组和cell数组,采用各种形式引用。
5.算术、关系和逻辑运算符操作单个数、一维和二维数组。
(1)+、-、*、/、\、^
(2).*、./、.\、.^
(3)>、<、>=、<=、==、~=
(4)&、|、~、xor
(5)all、any、exsit、find、isequal、isnumric、isempty、
bitand、bitor、bitxor、bitcmp、&&、||
三、实验步骤(略)
四、训练习题
1.计算结果如下:
stats=1.0e+007*0.0000,但数据格式能改成普通的吗?
就是0.0123这种形式,请问matlab怎么改变数据格式?
2.在MATLAB中,怎么样对数据四舍五入?
比如矩阵中的数据[0.109172,0,236751,0,976736],我想得到这样的结果[0.10917,0,23675,0,97674],请问用什么命令?
3.为什么3+4&2的运算结果等于1而不是4?
4.eval(expression);是执行其参数中包含的expressionmatlab语句。
例如:
把August1.mat到August3.mat加载到MATLABworkspace:
ford=1:
3
s=['loadAugust'int2str(d)'.mat']
eval(s)
end
以下是被执行的s语句:
s=
loadAugust1.mat
s=
loadAugust2.mat
s=
loadAugust3.mat
问题:
为何s=['loadAugust'int2str(d)'.mat']的函数int2str(d)前后需要两个空格?
5.解决找不到目录的问题
方法一:
在matlab中输入editpathdef.m命令,然后打开了pathdef文件,将其中的相关目录注释掉然后保存,即可。
方法二:
也可以不打开pathdef.m文件,而直接用rmpath命令把pathdef.m中的相关找不到的目录去掉,然后用savepath保存。
rmpath的用法可参考帮助文件。
6.阅读并编写下列代码:
%读懂下列代码的前8行。
1.%阅读下面的程序,分析和理解如何进行分段函数的绘制。
2.%本例演示的是削顶整流正弦半波的计算和图形绘制。
3.%要求根据y值的不同进行分段,然后绘制出一样的图形。
4.t=linspace(0,3*pi,500);y=sin(t);
5.z1=((t2*pi)).*y;%<3>
6.w=(t>pi/3&t<2*pi/3)+(t>7*pi/3&t<8*pi/3);
7.w_n=~w;
8.z2=w*sin(pi/3)+w_n.*z1;
9.plot(t,z2,'-b'),axis([010-11])
7.阅读并编写下列代码:
%读懂下列代码的前12行
1.%阅读下面的程序,理解num2str和char的功能,
2.%掌握如何在MATLAB计算生成的图形上标出图名和最大值的点坐标的方法。
3.clear
4.a=2;
5.w=3;
6.t=0:
0.01:
10;
7.y=exp(-a*t).*sin(w*t);
8.[y_max,i_max]=max(y);%y_max是y中的最大值,对应的位置是i_max
9.t_text=['t=',num2str(t(i_max))];
10.y_text=['y=',num2str(y_max)];
11.max_text=char('maximum',t_text,y_text);
12.tit=['y=exp(-',num2str(a),'t)*sin(',num2str(w),'t)'];
13.plot(t,zeros(size(t)),'k')
14.holdon
15.plot(t,y,'b')
16.plot(t(i_max),y_max,'r.','MarkerSize',20)%MarkseSize设置点的大小
17.text(t(i_max)+0.3,y_max+0.05,max_text)
18.title(tit),xlabel('t'),ylabel('y'),holdoff
8.已知矩阵A维度6x5;代表6个学生5门成绩,求每门成绩均大于90的学生。
9.演练下列代码:
10.完成下列运算:
11.运行下列代码,说出各行的运行结果:
12.
五、测试习题
MATLAB实验三MATLAB编程基础(下)
一、实验目标
1.熟悉MATLAB三大程序结构。
2.熟悉与函数相关的知识。
3.熟悉.m文件的编写和调试。
二、实验内容及要求
1.熟悉MATLAB三大程序结构。
(顺序,分支、循环)
练习if,switchcase,while-end,for-end语句。
2.熟悉break、continue、return和try-catch的使用。
3.熟悉与函数相关的知识。
(主函数、子函数、私有函数、匿名函数、嵌套函数、重载函数)
4.观察变量的作用域(全局变量和局部变量),参数的按值传递,参数的按地址传递方式以及参数可调性。
5.熟悉.m文件的编写。
(命令文件和函数文件的编写)
6.对于写好的.m文件,进行简单的调试。
(设置断点,单步执行,观察变量的值)
三、实验步骤(略)
四、训练习题
1.编写一个M函数文件,对于任意输入的向量x,可以计算下列分段函数值构成的向量。
2.matlab中有没有函数,找出两个数值数组中相同的项,比如func([126912],[291223])=[2912].如果有,请找到并调用,如果没有,请自己编写一个。
3.编写任意M文件,用于测试主函数能否调用子函数?
测试子函数是否能调用主函数?
测试子函数是否能调用其他子函数?
将该文件放入private目录,看是否能被其父目录的M文件调用?
4.编写函数文件myfunc.m,任意输入一个正整数,如果是偶数,用2除,如果是奇数,用3乘再加1,反复这个过程,直到所得到的数为1,将依次得到的这个数列返回(数列中包括输入的正整数)。
5.输入一个字符,若为大写字母,则输出其对应的小写字母;若为小写字母,则输出其对应的大写字母;若为数字字符,则输出其对应的数值;若为其他字符,则原样输出。
6.有一分数序列2/1,3/2,5/3/,8/5……求前15项和。
五、测试习题
MATLAB实验四小测试
一、实验目标
小测试,考察掌握m文件的编写能力。
二、测试习题
1.编写函数文件myfunc.m,任意输入一个正整数,如果是偶数,用2除,如果是奇数,用3乘再加1,反复这个过程,直到所得到的数为1,将依次得到的这个数列返回(数列中包括输入的正整数)。
2.编写函数文件charFunc.m输入一个字符,若为大写字母,则输出其对应的小写字母;若为小写字母,则输出其对应的大写字母;若为数字字符,则输出其对应的数值;若为其他字符,则原样输出。
3.编写一个矩阵相加函数matadd.m,使其具体的调用格式为A=matadd(A1,A2,…,An),要求该函数能接受可变多个矩阵进行加法运算。
MATLAB实验五矩阵和多项式运算
一、实验目标
1.矩阵的初等运算。
2.矩阵的关系和逻辑运算。
3.掌握多项式的构造和运算方法。
4.能使用常用函数进行简单问题求解。
二、实验内容及要求
1.熟悉矩阵的构造,修改和变维。
2.熟悉矩阵元素的变换(取整,有理数,求模等)以及特殊矩阵的生成(空矩阵,单位阵,全1,全0,魔方阵,两种随机阵等)。
3.矩阵的基本运算(+-*/^)和特殊运算(秩、迹等)。
4.矩阵的关系和逻辑运算。
5.多项式的构造和运算。
三、实验步骤(略)
四、训练习题
1.自己演练所有书上的例题以及课后练习题。
2.
3.
4.多项式题目
5.
五、测试习题
MATLAB实验六MATLAB符号运算
一、实验目标
1.熟练掌握符号、符号表达式和符号方程的定义。
2.掌握符号表达式的基本运算。
3.掌握与符号表达式相关的常用函数。
4.掌握使用符号运算解决符号推导、微积分、方程和方程组、微分方程和微分方程组、级数以及talor展开等问题的方法。
二、实验内容及要求
1.练习符号变量、符号表达式、符号方程的定义和引用。
自变量的默认和指定。
2.练习符号表达式的基本运算。
(+-*/^)。
3.练习符号表达式的化简、复合函数,反函数,替换,指定精度值等运算。
4.练习极限,微分,积分、级数和泰勒函数等运算函数。
5.解方程和方程组。
6.解微分方程和微分方程组。
三、实验步骤(略)
四、训练习题
1.演练所有ppt、书上的例题以及课后练习题。
2.演练solve函数,尤其是返回值的定义。
3.演练findsym函数。
4.体会simple和simplyfy的区别。
5.练习如下习题。
(1)把字符表达式转换为符号变量
2*sin(x)*cos(x)
(2)用符号计算验证三角等式
(3)化简
(4)化简
(5)合并同类项
3*x^3-0.5*x^3+3*x^2
(6)按不同的方式合并同幂项。
(x^2+x*exp(-t)+1)*(x+exp(-t))
(7)factor指令的使用
a).x^4-5*x^3+5*x^2+5*x-6
b).x^2-a^2
(8)对多项式进行嵌套型分解
x^4-5*x^3+5*x^2+5*x-6
(9)已知函数f(x)=2x/(1+2x)(x∈R),求f-1(1/3)的值
(10)求反函数
(11)求反函数y=x^2
(12)求反函数
(14)求
的复合函数
(15)设
求复合函数f(g(z));
(16)设
求复合函数f(g(z))。
思考:
除了用compose函数外,是否有其它方法?
(17)设a、b定义如下,试上机输出factor(a)和factor(b)的结果,并指出那个结果才是12345678901234567890的因式分解,为什么?
>>a=sym(‘12345678901234567890’);
>>b=sym(12345678901234567890);
(18)三重积分的例子。
6.练习如下习题。
MATLAB实验七二维绘图
一、实验目标
二维绘图
二、实验内容及要求
1.熟悉图形窗口Figure的创建;
熟悉子图窗口subplot的创建;
熟悉使用Plot绘制二维图形。
2.设置Figure窗口的常用属性。
用get函数获取相关属性并用set函数设置属性值。
在figure窗口中打开view和insert菜单进行图形用户界面的相关设置。
3.用matlab函数对绘图区域装饰;
4.常用绘图函数:
bar,area,pie等。
5.其他绘图函数。
(了解并演练)
6.不同坐标系中绘图(直角坐标,极坐标等),双轴图。
7.符号表达式绘图:
fplot,ezplot
三、实验步骤(略)
四、训练习题
1.演练所有书上的例题以及课后练习题。
2.
3.设计一个模拟随机行走的静态和动态演示图。
随机数据由设计者指定。
4.在同一坐标轴中绘制下列两条曲线并标注两曲线的交叉点。
(1)y=2x-0.5
(2)
。
5.分别用plot和fplot函数绘制函数
的曲线,分析两曲线的差别。
五、测试习题
MATLAB实验八三维绘图
一、实验目标
1.熟悉三维绘图的基本方法;
2.掌握几种常用三维绘图的函数(bar3,pie3等)
二、实验内容及要求
1.绘制三维曲线。
2.绘制三维曲面。
3.绘制特殊三维图形。
三、实验步骤(略)
四、训练习题
1.演练所有书上的例题以及课后练习题
2.习题
3.分别用plot和fplot函数绘制函数
的曲线,分析两曲线的差别。
4.绘制下列三维图线。
5.绘制下列曲面图。
6.习题:
仔细观察如下的图形,编写命令,执行后在图形窗口中得到该图形
7.画出函数z=(x-2)2+(y-1.2)2+sin(xy)的三维曲线和网格曲线。
x和y均在[0,10].
8.
五、测试习题
MATLAB实验九MATLAB习题测试
一、实验目标
限定时间内完成限定的习题。
二、实验内容及要求
要求:
只允许查看教材,ppt或者参考书,不允许上网搜索。
1.创建个人目录目录班级_学号_姓名(如:
02020901_2009300999_张三)。
2.将所有测试习题(按照测试题目要求保存为相应的m文件)保存在该目录下,注意,目录不要放在c盘。
3.提交之前,请用winrar压缩该个人目录。
然后再选择提交作业。
三、实验步骤(略)
四、训练习题
五、测试习题
1.编写一个程序允许使用者输入一个字符串,这个字符必须是一个星期中的某一天(即"Sunday","Monday","Tuesday"等),应用switch结构把这些字符串转化为相应的数字,以星期天为第一天,以星期六为最后一天。
如果输入不是这七个字符串中的一个,那么输出提示信息。
2.编写fetchmatrix.m函数fetchmatrix(M,n1,n2)输入参数为三个,第一个为矩阵,第二个和第三个都是行向量。
输出参数为B和C两个矩阵)。
要求:
1)按照用户第二个参数指定的行数提取数据,赋给B矩阵;2)按照用户第三个参数指定的列数提取数据,赋给C矩阵;
3)保证函数的健壮性。
如:
行向量的值与矩阵维度的关系要合理。
3.编写命令文件figuremeet.m在同一坐标轴中绘制下列两条曲线。
在程序中用代码标注两曲线的交叉点的坐标值,并且在figure中用手工的方式近似地标注该交叉点,并显示出该交叉点的坐标值。
(1)y=2x-0.5
(2)
。
4.编写命令文件pingmian1.m和pingmian2.m绘制下列曲面图。
并利用pingmian1的绘制方法,绘制一个长方体。
5.仔细观察如下的图形,编写命令,执行后在图形窗口中得到该图形。
MATLAB实验九(选做)matlab工具箱及与外部接口
一、实验目标
1.MATLAB与外部接口;
2.MATLAB工具箱的使用。
二、实验内容及要求
三、实验步骤(略)
四、训练习题
五、测试习题
MATLAB实验十MATLAB结课测试
一、实验目标
限定时间内完成限定的测试题目。
二、实验内容及要求
要求:
只允许查看教材,ppt或者参考书,不允许上网搜索。
1.创建个人目录目录班级_学号_姓名(如:
02020901_2009300999_张三)。
2.将所有测试习题(按照测试题目要求保存为相应的m文件)保存在该目录下,注意,目录不要放在c盘。
3.提交之前,请用winrar压缩该个人目录。
然后再选择提交作业。
三、实验步骤(略)
四、训练习题
五、测试习题
1.模仿logspace函数编写函数twospace.m来完成输出特定数据的程序。
要求:
1)输入参数为3个。
例如:
twospace(0,2,6)输出为(2^0,…,2^2)共6个数据。
2)参考logspace函数处理“变态”数据的方法,处理twospace函数调用中可能会出现的“变态”参数。
保证函数的健壮性。
2.编写函数文件plotsquare.m来绘制正方形曲线图程序plotsquare(square,d,color)。
要求:
1)给定参数字符串square和边长d,则绘制默认颜色的正方形,对称中心在原点,并且正方形上下两边平行于x轴,左右两边平行于y轴。
2)给定参数字符串square和边长d以及颜色color(分为red,green,blue三种颜色),则绘制给定颜色的正方形,对称中心在原点,并且正方形四个顶点都在x或y轴上。
3.编写函数文件calcnum.m统计给定字符串里面相同子串中最长子串的长度以及该子串重复的次数。
输入参数为字符串,返回值为相同子串中最长子串,该子串的的长度以及该子串重复的次数。
如果字符串中没有相同的子串则返回相应的提示,如:
“nosamesubstr”。
例如:
calcnum(‘abcdaaabcdbbbaaa’),应该返回abcd,4,2
4.编写MATLAB函数文件myfibonacci.m,函数定义如下:
myfibonacci(N),返回Fibonacci数列中的第一个大于给定值N的元素值及n值。
Fibonacci定义为: