MATLAB通信系统仿真实验报告
专业姓学指导实验实验实验
2014-2015 学年第 2 学期)
年级 通信2012级 班 名 号 教师 刘金梅 学时 18 时间 2-9周,11周,周四3、4节 地点 信息楼112机房 (
实验一、MATLAB的基本使用与数算
目的:学习MATLAB的基本操作,实现简单的数算程序。
内容:1、要求在闭区间[0,2π]上产生具有10个等间距采样点的一维数组。试用两种不同的指令实现。
2、用M文件建立大矩阵x:
[0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9]
3、已知A=[5,6;7,8],B=[9,10;11,12],用MATLAB分别计算A+B、A*B、A.B、 A^3、A.^3、A/B、A\\B。
4、任意建立矩阵A,然后找出在[10,20]区间的元素位置。 程序代码及运行结果: 1.(1)程序代码:
方法1: a = 0:2*pi/10:2*pi 方法2: a1 = inspace(0,2*pi,10) (2)运行结果如图1-1所示:
图 1- 1
2.(1)程序代码:x=[0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9;
1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8,1.9;
2.1,2.2,2.3,2.4,2.5,2.6,2.7,2.8,2.9;
3.1,3.2,3.3,3.4,3.5,3.6,3.7,3.8,3.9]
运行结果如图1-2所示:
图 1-2
3.(1)程序代码:A=[5,6;7,8];
B=[9,10;11,12]; C=A+B D=A*B E=A.*B F=A^3 G=A.^3 H=A/B I=A\\B
(2)运行结果:C =
14 16 18 20 D =
111 122 151 166 E =
45 60 77 96 F =
881 1026 1197 1394 G =
125 216 343 512 H =
3.0000 -2.0000 2.0000 -1.0000 I =
-3.0000 -4.0000 4.0000 5.0000
4.(1)程序代码:>>A=[4,15,-45,10,6;56,0,17,-45,0] B=find(A>=10&A<=20) (2)运行结果:A=
4 15 -45 10 6 56 0 17 -45 0
B=
3 6 7
总结:通过本次实验学习MATLAB的基本操作,实现简单的数算程序。第一次 MATLAB实验,没有注意到点乘,在输入代码是有时候没注意到是英文输入还是中文输入。
通过实验学会了在同一个窗口显示几个算法指令,像数组和矩阵的各种运算符号,尤其要注意到两者的区别。例如A*B是是指内维相同的矩阵相乘,而A*B是指A数组和B数组对应元素相乘。同时也要注意到左除和右除的区别。
实验二、MATLAB程序的编写
目的:掌握顺序结构、选择结构、循环结构程序设计方法。学会编写函数。 内容:
1、编写程序,建立向量N=[1,2,3,4,5],然后利用向量N产生下列向量:
(1)2, 4, 6, 8, 10, (2)1/2, 1, 3/2, 2, 5/2 (3) 1, 1/2, 1/3, 1/4, 1/5 (4) 1, 1/4, 1/9, 1/16, 1/25
2、从键盘输入一个三位整数,将它反向输出,如输入639,输出936。输入一个百分制成绩,要求输出成绩等级A,B,C,D,E。其中90~100分为A,80~分为B,70~79分为C,60~69分为D,60分以下为E。
要求:
(1)分别用if语句和switch语句实现。
(2)输入百分制成绩后要判断该成绩的合理性,对不合理的成绩应输出错误信息。
3、输入20个两位随机数,求其中最大数和最小数。要求分别用循环结构和调用MATLAB的max函数、min函数来实现。
4、写出下列程序的输出结果。 (1) s=0;
a=[12,13,14,15,16,17,18,19,20,21,22,23]; for k=a for j=1:4
if rem(k(j),2) ~=0 s=s+k(j); end end end s
(2)命令文件exe.m global x
x=1:2:5;y=2:2:6; exsub(y);
x y
(3)函数文件sub.m function fun=exsub(z) global x z=3*x; x=x+z;
程序代码及运行结果:
1.(1)程序代码:N=[1,2,3,4,5]; format rat A=N.*2 B=N./2 C=N.^(-1) D=N.^(-2)
(2)运行结果如图2-1所示:
图2-1
2. (1)程序代码: 反向输出:
m=input('请输入一个三位数:'); m1=fix(m/100);
m2=rem(fix(m/10),10); m3=rem(m,10);
m=m1+m2*10+m3*100;
disp(m)
if语句,实现输入一个百分制成绩,输出成绩等级: c=input('请输入一个百分制数'); if c>=90 & c<=100 disp('A');
elseif c>=80 & c<90; disp('B');
elseif c>=70 & c <80; disp('C');
elseif c>=60 & c <70; disp('D'); elseif c>=0 & c<60; disp('E'); else
disp('输入出错'); end
switch语句,实现输入一个百分制成绩,输出成绩等级: c=input('请输入一个百分制数'); switch fix(c/10) case{9,10} m='A'; case{8} m='B'; case{7} m='C'; case{6}; m='D';
case num2cell(0:5) m='E'; otherwise
m='输入出错'; end disp(m) 运行结果:
反向输出结果如图2-2所示:
图 2-2
if、switch语句,实现输入一个百分制成绩,输出成绩等级的实验结果如图2-3所示:
图 2-3
Copyright © 2019- sceh.cn 版权所有 湘ICP备2023017654号-4
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务