MATLAB全部实验及答案
- 格式:doc
- 大小:1.95 MB
- 文档页数:28
MATLAB全部实验及答案
实验一、MATLAB基本操作
实验内容及步骤
4、有关向量、矩阵或数组的一些运算
(1)设A=15;B=20;求C=A+B与c=a+b?
(2)设A=[1 2 3;4 5 6;7 8 9],B=[9 8 7;6 5 4;3 2 1];求A*B与
A.*B?
A*B就是线代里面的矩阵相乘 A.*B是对应位置的元素相乘(3)设a=10,b=20;求i=a/b=0.5与j=a\b=2?
(4)设a=[1 -2 3;4 5 -4;5 -6 7]
请设计出程序,分别找出小于0的矩阵元素及其位置(单下标、全
下标的形式),并将其单下标转换成全下标。
clear,clc
a=[1 -2 3;4 5 -4;5 -6 7];
[x,y]=find(a<0);
c=[];
for i=1:length(x)
c(i,1)=a(x(i),y(i));
c(i,2)=x(i);
c(i,3)=y(i);
c(i,4)=(y(i)-1)*size(a,2)+x(i);
end
c
(5)在MATLAB命令行窗口运行A=[1,2;3,4]+i*[5,6;7,8];看结果如何?如果改成运行A=[1,2;3,4]+i[5,6;7,8],结果又如何?前面那
个是虚数矩阵,后面那个出错
(6)请写出完成下列计算的指令:
a=[1 2 3;3 4 2;5 2 3],求a^2=?,a.^2=?
a^2= 22 16 16
25 26 23
26 24 28
a.^2=
1 4 9
9 16 4
25 4 9
(7)有一段指令如下,请思考并说明运行结果及其原因
clear
X=[1 2;8 9;3 6];
X( : ) 转化为列向量
(8)使用三元组方法,创建下列稀疏矩阵
2 0 8 0
0 0 0 1
0 4 0 0
6 0 0 0
方法一:
clear,clc
data=[2 8 1 4 6];
ir=[1 1 2 3 4 ];
jc=[1 3 4 2 1];
s=sparse(ir,jc,data,4,4);
full(s)
方法二:不用三元组法
clear,clc
a=zeros(4,4);
a(1,[1,3])=[2,8];
a(2,4)=1;
a(3,2)=4;
a(4,1)=6;
a
(9) 写出下列指令的运行结果
>> A = [ 1 2 3 ]; B = [ 4 5 6 ];
>> C = 3.^A
>> D = A.^B
5、 已知⎪⎭⎫
⎝⎛+⋅=-334sin 234πt e y t 若需要计算t ∈[-1,1],取间隔为
0.01,试计算出相对应的y 值。
用步长为0.01的for 循环 搞定
实验二、MATLAB 运算基础
实验内容及步骤
(一)
2、设有矩阵A和B,A=[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],B=[3 0 16;17 -6 9;0 23 -4;9 7 0;4 13 11]
(1)求它们的乘积C
(2)将矩阵C的右下角3x2子矩阵赋给D
解:A=[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];
B=[3 0 16;17 -6 9;0 23 -4;9 7 0;4 13 11];
c=A*B
D=c([3:5],[2:3])
D=c([3,4,5],[2,3])
3、已知A=[23 10 -78 0;41 -45 65 5;32 5 0 32;6 -54 92
14],取出其前3行构成矩阵B,其前两列构成矩阵C,其左下角3x2
子矩阵构成矩阵D,B与C的乘积构成矩阵E,分别求E ~E|~D。 解:A=[23 10 -78 0;41 -45 65 5;32 5 0 32;6 -54 92 14]; B=A([1:3],:) c=A(:,[1,2]) D=A([2:4],[1,2]) E=B*c E 4、使用函数,实现矩阵左旋90°或右旋90°的功能 解:A=[23 10 -78 0;41 -45 65 5;32 5 0 32;6 -54 92 14] rot90(A) rot90(A,3) 5、求S=20+21+22+23+24+……+210的值(提示:利用求和函数与累乘积函数。) 解:a=2*ones(1,10) b=cumprod(a) c=sum(b)+1 aa=2*ones(1,11) aa(1)=1 bb=cumprod(aa) cc=sum(bb) (二) 1、求[100,999]之间能被61整除的数及其个数(提示:先利用冒号表达式, 再利用find和length函数。) 2、建立一个字符串向量,删除其中的大写字母(提示:利用find函数和空 矩阵。) 解:1)clear,clc 2)clear,clc t=[100:999]; b=['asSldSjfkSlGjFhslFf'] i=find(rem(t,61)==0); d=find(b<='Z'&b>='A'); t(i) b(d)=[]