说明:这只是报告的雏形!分享智慧,分享经验,仅供参考,欢迎交流,切勿Ctrl+C and Ctrl+V
本科实验报告
课程名称: MATLAB及在电子信息工程中应用
实验项目: MATLAB实验指导书二.三.四
实验地点: 中区图书馆起点机房
专业班级: 信息1102班 学号:
学生姓名: 李政洁
指导教师: 李鸿燕
20##年 5 月 26 日
实验二 矩阵和数组的操作
一.实验环境
MATLAB2012a
二.实验目的
1.掌握矩阵和数组的一般操作。
2.学习矩阵和数组的加减运算与乘法。
3.掌握对数组中的元素的寻访与赋值,会对数组进行一般的操作。
三.实验内容
% 1.创建一个5X5矩阵,提取主对角线以上部分
A=[1:5;2 4 6 8 10;3:2:11;linspace(1,6,5);11 ,12, 13, 14,15]
A =
1.0000 2.0000 3.0000 4.0000 5.0000
2.0000 4.0000 6.0000 8.0000 10.0000
3.0000 5.0000 7.0000 9.0000 11.0000
1.0000 2.2500 3.5000 4.7500 6.0000
11.0000 12.0000 13.0000 14.0000 15.0000
%在矩阵A的创建中,太原理工大学信息学院李政洁一次性演示了多种创建方式的混合使用。。。。
B=triu(A)
B =
1.0000 2.0000 3.0000 4.0000 5.0000
0 4.0000 6.0000 8.0000 10.0000
0 0 7.0000 9.0000 11.0000
0 0 0 4.7500 6.0000
0 0 0 0 15.0000
%矩阵B为提取了主对角线及以上元素,但B不符合题目要求,于是李政洁在下面将使用triu(A,1)
C=triu(A,1)
C =
0 2 3 4 5
0 0 6 8 10
0 0 0 9 11
0 0 0 0 6
0 0 0 0 0
% OK,至此,李政洁同学完成了第一题,A,C分别为所求矩阵。
% 2.计算三个指定矩阵相乘
D=rand(3)
D =
0.8147 0.9134 0.2785
0.9058 0.6324 0.5469
0.1270 0.0975 0.9575
E=magic(3)
E =
8 1 6
3 5 7
4 9 2
F=rand(3,4)
F =
0.9649 0.9572 0.1419 0.7922
0.1576 0.4854 0.4218 0.9595
0.9706 0.8003 0.9157 0.6557
G=D*E*F
G =
22.7418 23.2308 15.6399 23.5486
22.9828 23.9760 15.4310 24.7855
9.6742 12.0883 7.6995 15.1322
% OK,至此,李政洁完成了第二题,下面我们快乐的开始第三题吧!
% 3.创建一个3X3矩阵,并求其转置,逆矩阵
H=magic(3)
H =
8 1 6
3 5 7
4 9 2
%为了快速创建,李同学使用了函数magic();
I=H'
I =
8 3 4
1 5 9
6 7 2
% I为所创建矩阵的转置
J=inv(H)
J =
0.1472 -0.1444 0.0639
-0.0611 0.0222 0.1056
-0.0194 0.1889 -0.1028
% J为所创建矩阵H的逆矩阵
% OK,至此,政洁完成了第三题,进入下一题
% 4.用两种方法求Ax=b的解(A为四阶随机矩阵,b为四阶行向量)
A1=rand(4)
A1 =
0.0357 0.7577 0.1712 0.0462
0.8491 0.7431 0.7060 0.0971
0.9340 0.3922 0.0318 0.8235
0.6787 0.6555 0.2769 0.6948
b1=[1 2 3 4]'
b1 =
1
2
3
4
%法一
x1=inv(A1)*b1
x1 =
-2.3797
-0.0513
4.8988
6.1774
%法二
x2=A1\b1
x2 =
-2.3797
-0.0513
4.8988
6.1774
%x1==x2,这也验证了方法的正确性,李政洁同学圆满完成老师这道题要考察
%的内容!!!
% 5.创建一个随机矩阵,计算A的立方
K=rand(4)
K =
0.3171 0.3816 0.4898 0.7547
0.9502 0.7655 0.4456 0.2760
0.0344 0.7952 0.6463 0.6797
0.4387 0.1869 0.7094 0.6551
L=K^3
L =
1.7085 2.1869 2.4099 2.4405
2.3205 2.7714 3.0098 3.0553
2.0843 2.6034 2.7182 2.7732
1.7565 2.2160 2.4594 2.4274
% ok,这也是一个简单的操作,做下一个吧。。
% 6.求100-999之间能被21整除的数的个数
M=100:999; %数太多了,就不显示了
N=find(rem(M,21)==0);
O=length(N)
O =
43
%M:100-999之间整数组成的一维数组或者可以说是一个行向量
%N:M中能被21整除的数的下标
%0:这些下标的个数,亦为数组中能被21整除的数的个数
%下面我要做第七题了
% 7.设有矩阵A,B,求C=AXB,将右下角3X2子矩阵赋给D
P=1:25;
A3=reshape(P,5,5)
A3 =
1 6 11 16 21
2 7 12 17 22
3 8 13 18 23
4 9 14 19 24
5 10 15 20 25
A3=A3'
A3 =
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20
21 22 23 24 25
%政洁同学使用维数重组和转置快速完成了题目所设定矩阵的创建
B3=[3 0 16;17 -6 9;0 23 -4;9 7 0;4 13 11]
B3 =
3 0 16
17 -6 9
0 23 -4
9 7 0
4 13 11
%A3 ,B3分别题目中的A,B,我这么做是想是同一报告中不要总是出现A,B
C3=A3*B3
C3 =
93 150 77
258 335 237
423 520 397
588 705 557
753 890 717
D3=tril(C3,-2)
D3 =
0 0 0
0 0 0
423 0 0
588 705 0
753 890 717
%至此,李政洁完成了第七题,哈哈^-^
%^—^太原理工电子信息工程1102班李政洁^-^
%至此,完成《实验二 矩阵和数组的操作》。。
diary
四.实验说明
我在MATLAB2012a中完成实验二 矩阵和数组的操作,在这个过程中,我使用了diary命令将我在实验过程中的数据记录,操作记录,心得体会全部保存到指定文档并有了如上的实验。
实验三 MATLAB绘图
一.实验环境
MATLAB2012a
二.实验目的
1.掌握MATLAB的基本绘图命令
2.掌握运用MATLAB绘制一维,二维,三维图形的方法
3.绘图加以修饰
三.实验内容
(一)书本实例
1.创建一个5X5魔方矩阵,并画出这个矩阵的图形
代码:
%太原理工大学信息学院电子信息工程1102班李政洁
%实验三实验内容和步骤
A=magic(5);
plot(A);
title('magic(5) by LZJ')
图形:
2. 在同一坐标轴绘制sin(x),cos(x)两条曲线
代码:
x=linspace(0,2*pi,50);
y=sin(x);
plot(x,y)
title('sin and cos by LZJ')
hold on
z=cos(x);
plot(x,z)
hold off
图形:
3.画出y=x^2,-5<x<5,y=x^(1/3)
代码:
x=linspace(-5,5,100);
y=x.^2;
plot(x,y)
hold on
z=x.^(1/3);
plot(x,z,'g--')
title('y=x^2 and y=x^(1/3) by LZJ')
hold off
图形:
4.在同一窗口,不同坐标系里分别绘出sin(x),cos(x),sinh(x),cosh(x)
代码:
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));
title('4 subplot by LZJ')
图形:
5.绘制一个三维曲线cos(p),sin(p),p
5.绘制一个三维曲线cos(p),sin(p),p
5.绘制一个三维曲线cos(p),sin(p),p
5.绘制一个三维曲线cos(p),sin(p),p
代码:
p=0:pi/10:20*pi;
plot3(cos(p),sin(p),p)
title('plot3(cos(p),sin(p),p) by LZJ')
图形:
(二)书本练习
1.画出横坐标在(-15,15)上的函数y=cos(x)的曲线
代码:
x=linspace(-15,15,1000);
y=cos(x);
plot(x,y)
axis([-15.1 15.1 -1.1 1.1])
title('cos(x) by LZJ')
图形:
2.用图形表示离散函数y=|(n-6)|^(-1),并加入网格
代码2.1:
%2 用图形表示离散函数y=|(n-6)|^(-1)
n=-10:15;
y2=1./(abs(n-6)+eps);
stem(n,y2,'fill')
title(' y2=1./(abs(n-6)+eps) by LZJ')
axis([-11 16 -0.1 1.2 ])
ylabel('限制坐标')
图形2.1:
代码2.2:
n=-10:15;
y4=1./abs(n-6);
plot(n,y4)
title(' y4=1./abs(n-6) by LZJ')
axis([-11 16 -0.1 1.2 ])
ylabel('限制坐标')
grid on
图形2.2:
3. 绘制y=sin(t)*sin(9t)及其包络线
代码:
t=linspace(-pi,pi,100);
y=sin(t).*sin(9*t);
plot(t,y)
title('y=sin(t)*sin(9t) by LZJ')
hold on
plot(t,sin(t))
plot(t,-sin(t))
图形:
四.实验说明
我在MATLAB2012a中完成实验三 MATLAB绘图,在这个过程中,我使用了diary命令将我在实验过程中的数据记录,操作记录,心得体会全部保存到指定文档,还使用了Word2007随时记录我的图形。在实验的过程中,我反复探索,对程序小小改动,这样改一下那样改一下,记录了很多的图形及代码,但为了保持实验报告的简洁易读,我省去了这些实验过程中的记录。同时,为了保护知识产权,我在图形的title上加了‘by LZJ’,LZJ既李政洁的拼音首写字母简写。
实验四 M文件的编写
一.实验环境
MATLAB2012a
二.实验目的
1.学习MATLAB中的关系运算和逻辑运算,掌握它们的表达式和用法。
2.掌握MATLAB中的循环结构。
3.学会用MATLAB进行M文件的编写和调用。
二.实验内容
(一)课本实例
1.创建一个矩阵,用函数all和any作用于该矩阵,比较结果
代码及结果:
a=[1 2 0 3;2 0 1 4]
a =
1 2 0 3
2 0 1 4
b=all(a)
b =
1 0 0 1
c=any(a)
c =
1 1 1 1
d=all(b)
d =
0
e=any(b)
e =
1
2.编写一个switch语句,判断输入输出的奇偶性
M文件代码:
n=input('n=');
switch mod(n,2)
case 1
A='奇数'
case 0
A='偶数'
otherwise
A='空'
End
Command windows运行结果:
n=7
A =
奇数
3.编写一个程序画出下列分段函数所表示的曲面,并用M文件存储
M文件代码:
%编写一个函数画出指定函数所表示的曲面
a=2;b=2;
clf;
x=-a:0.1:a;y=-b:0.1:b;
for i=1:length(y)
for j=1:length(x)
if x(j)+y(i)>1
f(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
f(i,j)=0.5475*exp(-0.75*y(i)^2-3.75*x(j)^2+1.5*x(j));
else f(i,j)=0.7575*exp(-y(i)^2-6*x(j)^2);
end
end
end
end
axis([-a a,-b,b,min(min(f)),max(max(f))]);
colormap(flipud(winter));
surf(x,y,f);
title('f(i,j) by LZJ')
图形:
(二)练习
1.编写一个程序计算N的阶乘
M文件代码:
%太原理工大学信息学院信息1102班李政洁
%计算阶乘
function f=exp_jiecheng(n)
f=1;
while n~=0;
f=f*n;
n=n-1;
end
运行演示:
>> exp_jiecheng(7)
ans =
5040
2.编写一个程序求出阶乘大于或等于99^99的最小整数。
M文件代码:
%太原理工大学信息学院信息1102班李政洁
%计算使阶乘大于等于99^99的n最小值
for n=110:125;
fjiecheng=exp_jiecheng(n);
if fjiecheng>=99^99
n
break;
end
end
四.实验说明
我在MATLAB2012a中完成实验四 M文件的编写,在这个过程中,我使用了diary命令将我在实验过程中的数据记录,操作记录,心得体会全部保存到指定文档并且使用Word2007记录图形。同时,为了保护知识产权,我在图形的title上加了‘by LZJ’,LZJ既李政洁的拼音首写字母简写。
说明:这只是报告的雏形!分享智慧,分享经验,仅供参考,欢迎交流,切勿Ctrl+C and Ctrl+V