D实验五 M文件和MATLAB程序设计
- 格式:doc
- 大小:63.47 KB
- 文档页数:6
Matlab课后实验题答案实验一 MATLAB运算基础1. 先求下列表达式的值,然后显示MATLAB工作空间的使用情况并保存全部变量。
(1)0 122sin851ze =+(2)21ln( 2z x=+,其中2120.455i x+⎡⎤=⎢⎥-⎣⎦(3)0.30.330.3sin(0.3)ln, 3.0, 2.9,,2.9,3.0 22a ae e az a a--+=++=--(4)2242011122123t tz t tt t t⎧≤<⎪=-≤<⎨⎪-+≤<⎩,其中t=0:0.5:2.52. 已知:1234413134787,2033657327A B --⎡⎤⎡⎤⎢⎥⎢⎥==⎢⎥⎢⎥⎢⎥⎢⎥-⎣⎦⎣⎦求下列表达式的值:(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 和B123453166789101769,111213141502341617181920970212223242541311A B ⎡⎤⎡⎤⎢⎥⎢⎥-⎢⎥⎢⎥⎢⎥⎢⎥==-⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦(1) 求它们的乘积C 。
(2) 将矩阵C 的右下角3×2子矩阵赋给D 。
(3) 查看MATLAB 工作空间的使用情况。
4. 完成下列操作:(1) 求[100,999]之间能被21整除的数的个数。
(2) 建立一个字符串向量,删除其中的大写字母。
解:(1) 结果:(2). 建立一个字符串向量 例如:ch='ABC123d4e56Fg9';则要求结果是:实验二 MATLAB 矩阵分析与处理1. 设有分块矩阵33322322E R A O S ⨯⨯⨯⨯⎡⎤=⎢⎥⎣⎦,其中E 、R 、O 、S 分别为单位矩阵、随机矩阵、零矩阵和对角阵,试通过数值计算验证22E R RS A OS +⎡⎤=⎢⎥⎣⎦。
实验一a=[1,2,3;4,5,6;7,8,9] b= repmat(a,2,2)B(24)=9实验二1、使用matlab命令统计randn(5)生成的矩阵里,有多少个元素小于0,将小于0元素个数存变量c中并将这些小于零元素存变量d中。
(实验报告要求:写出命令)a=randn(5)b=find(a<0);c=length(find(a<0))d=a(b)2、建立一个字符数组,内容如下所示:(实验报告要求:写出命令)A B C DE F G Ha b c da=['A B C D''E F G H''a b c d']3、已知有一个矩阵A(假如不知道其具体信息),请计算其元素个数(请先用实际矩阵来验证计算方法是否正确)。
(实验报告要求:写出正确计算方法的命令)A=randn(3,4)B=numel(A)4、已知有一个元胞数组B=[{ones(2,3,2)},{'Hello, Matlab'};{[4 5 6]},{1:100}],想获取字符串'Matlab',应输入什么命令?(实验报告要求:写出命令)f=B{1,2}(7:end)5、要从上题所建元胞数组B中获取列向量[4;5;6],可以有哪几种方法?(实验报告要求:写出命令及结果)方法1: i=B{2,1}(:)方法2: j=reshape(B{2,1},3,1)6、已知有两个学生的信息如下,请在matlab中创建结构对其进行存储,并算=['姓名''张三''李四']student.shuxue=[8778]student.yuwen=[7581 ]student.yingyu=[5560]实验三实验四:二维绘图(1)在同一个窗体(figure1)中画出正弦函数和余弦函数的图象。
要求如下:◆正弦图象用蓝色实线,时标用方格;◆余弦图象用黄色虚线,时标选向下三角形;◆为整个图像加中文标题;◆为x和y轴加轴标题;◆改x轴的单位为pi/2的倍数;◆增加图例;◆在图中合适的位置增加“正弦曲线”和“余弦曲线”两处文本信息。
一、实验目的1.练习函数的定义和书写及调用2.练习M文件下书写代码二、实验设备装有MATLAB的计算机。
三、实验内容1,分别编写命令(M)文件和函数(function)文件,在命令文件中可循环输入学生成绩,在函数文件判断成绩所属等级。
统计各分段的人数,并将各人的成绩按优、良、中、及格和不及格表示。
2.猜数游戏。
首先由计算机产生一个[1,100]之间的随机整数,然后由用户猜测所产生的随机数。
根据用户猜测的情况给出不同提示,如猜测的数大于产生的数,则显示“High”并请用户继续猜测,小于则显示“Low”并请用户继续猜测,等于则显示“You won”同时退出游戏。
用户最多可以猜7次。
如果第七次还未猜对,则显示“You fail!"并退出游戏。
四、实验步骤和结果1. 代码结果:输入正数开始5请输入学生成绩x=89请输入学生姓名l请输入学生成绩x=78请输入学生姓名h请输入学生成绩x=45请输入学生姓名k请输入学生成绩x=-1ans =优秀的人数0ans =良好的人数1ans =中等的人数1ans =及格的人数0ans =不及格的人数1姓名成绩等级l 89 良好h 78 中等k 45 不及格2.代码五、总结1.实验练习了函数的创建和使用,并且在M的文件中调用函数。
2.复习了单元数组和结构数组的知识。
3. 使用了字符串比较函数,在M文件中对各个等级的人数进行了统计。
4.猜数游戏中开始的代码,当第七次猜对后会输出”You Fail”,后对代码进行了改进。
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也是最普遍的计算工具之一。
有鉴于此,我院开设了《MATLAB程序设计》这门课程,它需要一定的理论基础,同时又具有很强的实践性。
如何加强理论课程的学习、加深学生对本课程中的基本理论知识及基本方法的理解,如何培养学生实践动手能力是教学的当务之急。
而MATLAB程序设计实验课程就是一种重要的教学手段和途径。
实验将MATLAB程序设计的基本方法灵活地运用在数学、电路等课程中,重点突出,内容丰富。
同时,注重理论分析与实际动手相结合,以理论指导实践,以实践验证基本原理,旨在提高学生分析问题、解决问题的能力及动手能力,使学生进一步巩固基本理论知识,建立比较全面的MATLAB程序设计的概念。
实验注意事项1、实验系统接通电源前请确保电源插座接地良好。
2、完成实验后请确保关闭电脑电源及插座电源。
实验一 矩阵及其运算一、实验目的1、熟悉MATLAB 工作环境2、掌握矩阵和数组的创建、寻访和运算 二、实验内容验证欧姆定律:iur ,其中i u r , ,分别是电阻(欧姆)、电压(伏特)、电流(安培)。
已知u=[0.89, 1.20, 3.09, 4.27, 3.62, 7.71, 8.99, 7.92, 9.70, 10.41],i=[0.028, 0.040, 0.100, 0.145, 0.118, 0.258, 0.299, 0.257, 0.308, 0.345]。
三、实验器材PC 机 (装有 MA TLAB 软件 ) 1台 四、实验原理 4.1 Desktop 简介MATLAB R2006a 版的Desktop 操作桌面,是一个高度集成的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 。
实验五、选择与循环结构一、实验目的:1、 掌握建立和执行M 文件的方法。
2、 掌握利用if 语句实现选择结构的方法。
3、 掌握利用switch 语句实现多分支选择结构的方法。
4、 掌握try 语句的使用。
5、 掌握利用for 语句实现循环结构的方法。
6、 掌握利用while 语句实现循环结构的方法。
7、 熟悉利用向量运算来代替循环的操作方法。
二、实验内容:1、 列分段函数的值。
⎪⎩⎪⎨⎧--≠≠<≤+--≠<-+=其他且且,632,100,6530,6222x x x x x x x x x x x y要求:(1) 用if 语句实现,分别输出x =-0.5,-3.0,1.0,2.0,2.5,3.0,5.0时的y 值。
提示:x 的值从键盘输入,可以是向量。
%homework_5_1_1.mx=input('请输入x 的值:x=');if (x<0 & x~=-3)y= x.*x + x - 6elseif (x>=0 & x<10 & x~=2 & x~=3)y=x.*x-5.*x+6elsey=x.*x-x-6end>> homework_5_1请输入x 的值:x=[-0.5 -3.0 1.0 2.0 2.5 3.0 5.0]y =-5.2500 6.0000 -6.0000 -4.0000 -2.2500 0 14.0000(2) 用逻辑表达式实现上述函数。
%homework_5_1_2.mx=input('请输入x 的值:x=')y=(x<0 & x~=-3).*(x.*x+x-6)...+(x>=0 & x<10 &x~=2 &x~=3).*(x.*x-5.*x+6)...+(x>=10 | x==-3 | x==3 | x==2).*(x.*x-x-6)>> homework_5_1_2请输入x=[-0.5 -3.0 1.0 2.0 2.5 3.0 5.0]x =-0.5000 -3.0000 1.0000 2.0000 2.5000 3.0000 5.0000 y =-6.2500 6.0000 2.0000 -4.0000 -0.2500 0 6.00002、输入一个百分制成绩,要求输出成绩的等级为A,B,C,D,E。
实验五M文件和MATLAB程序设计
一、实验目的
matlab作为一种高级计算机语言,不仅可以命令行方式完成操作,也具有数据结构、控制流、输入输出等能力,本次实验通过熟悉和掌握m文件的建立与使用方法,以及函数与控制程序流程语句的使用,使学生具备一定的编程和程序调试能力。
1.掌握M文件的使用方法。
2.掌握if语句和switch语句的使用
3. 掌握循环语句的使用
4. 通过练习理解MATLAB编程方法。
二、实验原理
1.m文件
用matlab语言编写的程序,称为m文件。
M文件根据调用方式的不同分为两类,命令文件(Script file)和函数文件(Function file)。
区别?
2.程序控制结构
1)顺序结构
2)选择结构
(1)if语句a) 单分支if语句b) 双分支if语句c) 多分支if语句
(2)switch 语句
(3)try语句
3)循环结构
(1)for 语句
(2)while语句
(3)break语句、continue语句、return使用,区别?
3.函数文件
function 输出形参表=函数名(输入形参表)
注释说明部分
函数体语句
注意事项?
三、实验要求
1.首先上机练习PPT中各种流程控制语句的有关实例。
2.然后上机练习下面的实验习题。
四、实验习题
1.数论中一个有趣的题目:任意一个正整数,若为偶数,则用2除之,若为奇数,则与3相乘再加上1。
重复此过程,最终得到的结果为1。
如:
2→1
3→10→5→16→8→4→2→1
6→3→10→5→16→8→4→2→1
运行下面的程序,按程序提示输入n=1,2,3,5,7,8,9等数来验证这一结论。
%classic "3n+1" problem from number theory.
while 1
n=input('Enter n,negative quits:');
if n<=0
break
end
a=n;
while n>1
if rem(n,2)==0
n=n/2;
else
n=3*n+1;
end
a=[a,n];
end
a
end
Enter n,negative quits:
2. 编程求满足∑=>m
i i 11000020的最小m 值。
a=0;
i=1; while (a<100000) a=a+pow2(i); i=i+1; end m=i-1
3. 编写一个函数,计算下面函数的值,给出x 的值,调用该函数后,返回y 的值。
function [y]=myfun1(x)
⎪⎩
⎪⎨⎧>+-≤<≤=3,630,
0,sin )(x x x x x x x y
选择一些数据测试你编写的函数。
function y=myfun1(x) if x<=0 y=sin(x); elseif x>0&x<=3 y=x; elseif x>3 y=-x+6; end 运行结果:
4. 用如下迭代公式求a ,迭代的终止条件为5n 1n 10x x -+≤-,迭代初值0.1x 0=,迭代次数不超过100次。
分别对迭代结果和准确值进行比较,并统计迭代次数。
迭代公式:11122--++=n n n x a x x
function [x, n]=sqrt_a(a) x=1.0; for k=1:100 m=x; x=x/2+a/(2*x); if abs(x-m)<=10^(-5) break end end x; n=k; s=(x-sqrt(a)); if abs(s)<=10^(-5) disp('正确'); else disp('错误'); end 下面调用举例:
运行结果:
>> [x ,n]=sqrt_a(3) 正确
x = 1.7321 n = 5 >> [x, n]=sqrt_a(17) 正确
x = 4.1231 n = 6 >> [x,n]=sqrt_a(113) 正确
x =
10.6301
n =
8
5.定义一个函数文件,求给定复数的指数、对数、正弦和余弦,并在命令文件中调用该函数文件。
程序设计:
function [e ln s c]=num(x)
e=exp(x)
ln=log(x)
s=sin(x)
c=cos(x)
end
运行结果:
>> num(5i)
e =
0.2837 - 0.9589i
ln =
1.6094 + 1.5708i
s =
0 +74.2032i
c =
74.2099
ans =
0.2837 - 0.9589i
6. 设 f(x)=01.011.01
)3()2(4
2+++--x x ,编写一个MATLAB 函数文件fx.m ,使得调用f(x)时,x 可用矩阵代入,得出的f(x)为同阶矩阵。
程序设计:
函数文件fx.m:
function A=fx(x)
A=1./((x-2).^2+0.1)+1./(((x-3).^4)+0.01)
end
调用fx.m 的命令文件:
>> A=fx([1 2;2 3;4 3])
运行结果:
A =
0.9716 10.9901
10.9901 100.9091
1.2340 100.9091
7. 已知y=)
20()30()40(f f f 当f(n)=n+10ln(n 2+5)时,求y 的值。
函数文件fn.m:
function x=fn(n)
x=n+10*log(n^2+5)
end
调用fn.m 的命令:
y=fn(40)/(fn(30)+fn(20))
运行结果:
y =
0.6390
五、实验小结和心得
通过本次实验,我了解了MATLAB 的工作模式和M 文件的构成规则,了解了命令M 文件和函数M 文件的异同。
会MATLAB 的M 文件的创建与修改,会使用函数句柄调用函数,会运用顺序结构、循环结构和分支结构进行计算机编程。
会控制MATLAB 的程序流,熟悉了应用程序设计的基本步骤。
能对文件进行简单操作,会调试和优化所设计的程序。
对应用程序接口的设计也有所了解。
MATLAB 语言被称为第四代编程语言,程序简洁、可读性很强,而且调试十分容易。
它是MATLAB 重要组成部分。
通过这次试验我已经对MATLAB 的工作模式有一个大致的了解,并掌握如何创建M 文件,包括命令文件和函数文件。
熟练地掌握MATLAB 的程序设计流程和程序设计的基本结构,并能初步设计一些简单的能解决实际问题的程序。
指导老师:_________________
实验时间和地点:______________
实验成绩:____________________。