一、实验目的和要求
1.了解Matlab矩阵运算的含义;
2.掌握Matlab的矩阵运算命令。
二、实验内容和步骤
1.计算下列表达式的值。
(1)计算值。
输入的命令:re=5.54^12+sin(3/5)*sqrt(17.89)/3.5-exp(3)
结果:re =8.3583e+08
“short”格式显示的结果:re =8.3583e+08
“long”格式显示的结果:re =8.358284828091042e+08
“rat”格式显示的结果:re =835828483
(2)计算表达式值,其中。
输入的命令:x=1+2i;y=3-sqrt(17);(cos(abs(x+y))-sind(78))/(x+abs(y))
结果:ans =-0.3488 + 0.3286i
2.给定矩阵,
键入A=[4,2,8;2,5,6;3,1,9],生成矩阵A;
键入B=[1,1,1;2,2,2;3,3,3],生成矩阵B。
3.在上一题的基础上,一次输入下列内容并根据输出完善下列表格。
输入内容 | 输出 | 作用 |
A(2,3) | 6 | A(2,3)表示矩阵A的第2行、第3列的元素 |
A(:,2) | 2 5 1 | A(:,2)表示矩阵A的第2列所有元素 |
A(3,:) | 3 1 9 | A(3,:)表示矩阵A的第3行所有元素 |
A(:,1:2:3) | 4 8 2 6 3 9 | A(:,1:2:3)取矩阵A的第1列和第3列的值 |
A*B | 32 32 32 30 30 30 32 32 32 | A*B矩阵乘法(A的列数等于B的行数) |
A.*B | 4 2 8 4 10 12 9 3 27 | A.*B表示A和B两矩阵对应元素的乘积 |
A^2 | 44 26 116 36 35 100 41 20 111 | A^2=A*A矩阵的乘方(A必须是方阵) |
A.^2 | 16 4 64 4 25 36 9 1 81 | A.^2数组元素对应元素乘方 |
B/A | 0.5000 0.0769 -0.3846 1.0000 0.1538 -0.7692 1.5000 0.2308 -1.1538 | 当B可逆时,A/B=AB-1,左除 |
B./A | 0.2500 0.5000 0.1250 1.0000 0.4000 0.3333 1.0000 3.0000 0.3333 | B./A数组运算,对应元素相除 |
4.依次写出完成下列操作所对应的语句:
- 产生一个5阶魔方矩阵M:M=magic(5);
- 将矩阵M的第3行4列元素赋值给变量t:t=M(3,4);
- 将矩阵M第2、3、4行第2、5列构成的子矩阵赋给变量N:N=M(2:4,[2 5]);
- 将矩阵M的前3行赋值给变量N:N=M(1:3,:);
- 将矩阵M的后3列赋值给变量N:N=M(:,3:end);
- 将矩阵M的偶数行、奇数列赋给变量N:N=M(2:2:end,1:2:end);
- 将矩阵M的内部元素赋给变量N:N=M;
- 提取M的主对角线元素,并以这些对角线元素构成对角矩阵N:N=diag(diag(M));
- 随机产生1000个0、1整数赋值给变量t:t=randi([0,1],1000);
- 随机产生100*5个三位正整数并赋值给变量M:M=randi([100,999],100,5);
- 生成矩阵 :2010*eye(10);
- 生成矩阵 :(ones(8)-eye(8))*6;
- 生成矩阵 :a=[1:10]';b=ones(10);a.*b;
- 生成矩阵 :a=ones(2);b=2*a;c=3*a;d=4*a;[a,b;c,d]。
5.写出完成下列操作的命令。
(1)将含有12个元素的向量t转换成3*4的矩阵:t=reshape(t,3,4);
(2)产生和M同样大小的单位矩阵:eye(size(M));
(3)删除矩阵M的第2行:M(2,:)=[];
(4)删除矩阵M的第1列和最后一列:M(:,[1 end])=[];
(5)逆序显示向量t中的元素:t(end:-1:1,end:-1:1);
(6)显示向量t偶数位置上的元素:t([2:2:end]);
(7)逆序显示向量t偶数位置上的元素:fliplr(flipud(t([2:2:end])));
(8)显示向量t中的偶数:t(mod(t,2)==0);
(9)显示向量t中的正数:t(t>0);
(10)显示向量t中的素数:t(isprime(abs(t)));
(11)将向量t中小于10的数置为0:t(t<10)=0;
(12)将向量t中的0元素用机器0来代替:t(t==0)=realmin;
(13)显示字符串S中的元音字母:s(ismember(s,'aeiouAEIOU'));
(14)将字符串S中的小写字母’a’转换为大写的’A’:s(s=='a')='A';
(15)统计字符串S中小写字母的个数:sum(s>='a'&s<='z');
(16)统计向量t中非零元素的个数:sum(t~=0)。