本科实验报告
课程名称: Matlab电子信息应用
实验项目: M文件的编写
实验地点: 电机馆跨越机房
专业班级: 学号:
学生姓名:
指导教师:
2014年 5 月 21 日
一、实验目的
1.学习MATLAB中的关系运算和逻辑运算,掌握它们的表达形式和用法。 2.掌握MATLAB中的选择结构和循环结构。 3.学会用MATLAB进行M文件的编写和调用。
二、预备知识
1.关系和逻辑运算
关系运算符用来完成关系运算,在控制程序流程方面有着极为重要的作用。MATLAB常用的关系符有:<、>、<=小于或等于、>=大于或等于、==等于、~=不等于。
关系运算符可以用来比较两个数值,若所描述的关系成立,则结果为1,表示逻辑真,反之,若所描述的关系不成立,结果为0,表示逻辑假。
MATLAB中的逻辑运算符有&与、∣或、~非。 逻辑运算法则
AB&B 00112.选择结构 if语句和switch语句 if语句的一般形式如下: if A1 %表达式1 B1 %命令1
else if A2 %表达式2 B2 %命令2 else B3 %命令3 end
switch语句的一般结构如下:
01010 0 0 1 A∣B 0 1 1 1 A,B) 0 1 1 0 xor(AA 1 1 0 0 ~switch a %读入一个语句 case A1 %情况1 B1 %命令1 case A2 B2 case .… …
other case %其余情况 Bn %最后一个命令 3.循环结构
for语句一般用于循环次数已知的情况,而while语句一般用于循环次数未知的情况。 for语句的格式为:for 变量=表达式 命令1 命令2 … end
while语句的格式为:while 表达式 命令 end
1. 实验内容与步骤
1. 创建一个矩阵,用函数all和any作用于该矩阵,比较结果。 2. 编写一个switch语句,判断输入数的奇偶性。
3. 编写一个程序画出下列分段函数所表示的曲面,并用M文件存储。
0.5457e0.75x23.75x11.5x122fx1,x20.7575ex26x1220.75x23.75x11.5x10.5457e22x1x211x1x21 x1x21步骤1 打开MATLAB的M文件编辑器file/new/M-file,编写以下内容: %first.m This is my first example a=2;b=2;
clf;
x=-a:0.2:a;y=-b:0.2:b; for i=1:length(y)
for j=1:length(x) if x(j)+y(i)>1
z(i,j)=0.5457*exp(-0.75*y(i)^2-3.75*x(j)^2-1.5*x(j)); else if x(j)+y(i)<=-1
z(i,j)=0.5457*exp(-0.75*y(i)^2-3.75*x(j)^2+1.5*x(j)); else z(i,j)=0.7575*exp(-y(i)^2-6*x(j)^2); end end end end
axis([-a,a,-b,b,min(min(z)),max(max(z))]); colormap(flipud(winter));surf(x,y,z);
步骤2 选择file/save命令,将文件保存,命名为first.m。 步骤3 在command window窗口输入文件名,可看到图形。
四、练习
1.编写一程序计算n的阶乘。
>> jiecheng n=5 n = 5
s = 120
2. 编写一个程序求出阶乘大于或等于99的最小整数。
99
>> bijiao ans = 120
3. 使用for函数编写一个程序实现sum(A)的功能,其中A为矩阵。
>> suma A=ones(3) A =
1 1 1 1 1 1 1 1 1 B =
3 3 3
4. 使用循环结构和向量化两种方法实现求数组的平方和平方根的计算,并计算程序运行时间。
>> tic;shijian;toc A=magic(3) A =
8 1 6 3 5 7 4 9 2 a1 =
64 1 36 9 25 49 16 81 4 a2 =
2.8284 1.0000 2.4495 1.7321 2.2361 2.6458 2.0000 3.0000 1.4142 Elapsed time is 7.513000 seconds. 5. 编写一个函数文件,用于生成等比数列。
>> dengbi(1,3,3) ans =
1 3 9
五、实验分析
通过这次实验,学习了MATLAB中的关系运算和逻辑运算,掌握了它们的表达形式和用法以及MATLAB中的选择结构和循环结构,学会了用MATLAB进行M文件的编写和调用。
六、实验总结
利用M文件可以记住编辑一些有特殊功能的函数,几乎完全满足了我们的运算需求,及时有的函数在matlab的库中没有我们也可以自己进行编辑,优化了它的功能。
因篇幅问题不能全部显示,请点此查看更多更全内容