Matlab上机题库及详细答案
例1、用一个简单命令求解线性系统
3x1+ x2 - x3 = 3.6
x1+2x2+4x3 = 2.1
-x1+4x2+5x3 = -1.4
解:A=[3 1 -1;1 2 4;-1 4 5]; b=[3.6;2.1;-1.4];
x=A\b %Inv(A)* b
x = 1.4818
-0.4606
0.3848
例2、用简短命令计算并绘制在0x6范围内的sin(2x)、sinx2、sin2x。
解:x=linspace(0,6)
y1=sin(2*x),y2=sin(x.^2),y3=(sin(x)).^2;
plot(x,y1,x, y2,x, y3)
例3:画出指数衰减曲线y1=exp(-t/3)*sin(3*t)和它的包络y2=exp(-t/3),t的取值范围是(0,4pi)。
解:t=0:pi/100:4*pi;
y2=exp(-t/3);
y1=y2.*sin(3*t);
plot(t,y1,'-r',t,y2,':b',t,-y2,':b')
知识点:
1. A(:,j)表示取A矩阵的第j列全部元素;A(i,:)表示A矩阵第i行的全部元素;A(i,j)表示取A矩
阵第i行、第j列的元素。
2. A(i:i+m,:)表示取A矩阵第i~i+m行的全部元素;A(:,k:k+m)表示取A矩阵第k~k+m列的全部元素,A(i:i+m,k:k+m)表示取A矩阵第i~i+m行内,并在第k~k+m列中的所有元素。
A=[1,2,3,4,5;11,12,13,14,15;21,22,23,24,25;31,32,33,34,35];
A(2:3,4:5)
A(2:3,1:2:5)
3. 利用end运算符,end表示某一维的末尾元素下标。
A=[1,2,3,4,5;11,12,13,14,15;21,22,23,24,25;31,32,33,34,35];
A(end,:)%取A最后一行元素
A([1,4],3:end)%取A第1、4行中第3列到最后一列元素。
4. A(:) 将矩阵A的每一列元素堆叠起来,成为一个行向量。
例4:使用关系运算和元素的逻辑运算出大于60小于100的数的位置。
解:num=round(rand(1,10)*100);%生成<100的整数,
%round(A),A中的元素四舍五入到整数,rand(1,10),产生随机数0.0-1.0的1X10矩阵。
n=(num>60)&(num<100)
n=n.*num
Result=find(n)%查非0位置,按索引方式
as=n(result)%显示这些数字
例5:产生对角线上全1,其余为0的2行3列矩阵的命令是_C_____。
A. ones(2,3) B. ones(3,2) C. eye(2,3) D. eye(3,2)
例6:已知a=0:4,b=1:5,下面的运算表达式出错的为_D__。
A. a+b B. a.*b C. a’*b D. a*b
例7:有一个2行2列的元胞数组c,则c(2)指的是__D____。
A.第1行第2列的元素内容
B.第2行第1列的元素内容
C.第1行第2列的元素
D.第2行第1列的元素
例8:已知x=0:10,则x有___B___个元素。
A. 10 B. 11 C. 9 D. 12
例9:已知数组a=
则a(:,end)是指___C___
A. 所有元素 B. 第一行元C. 第三列元素 D. 第三行元素
例10:计算x从0到20,y=sin(x)中,π<x<4π范围中,y>0的所有值。
解:x=0:20;
x1=x.*((x>pi)&(x<4*pi));
y=sin(x);
y1=sin(x1).*(sin(x1)>0)
例11:设A=[1 2 3;4 5 6]为2×3矩阵, 分别建立3×3、3×2和与矩阵A同样大小的零矩阵。
解: zeros(3);zeros(3,2);A=[1 2 3;4 5 6] ;zeros(size(A))
例12: 建立随机矩阵:
(1) 在区间[20,50]内均匀分布的5阶随机矩阵。
(2) 均值为0.6方差为0.1的5阶正态分布随机矩阵
解:>>x=20+(50-20)*rand(5);
>>y=0.6+sqrt(0.1)*randn(5)
例13: 将101~125等25个数填入一个5行5列的表格中,使其每行每列及对角线的和均为565。
解:M=100+magic(5)
M =117 124 101 108 115
123 105 107 114 116
104 106 113 120 122
110 112 119 121 103
111 118 125 102 109
例14: 先建立5×5矩阵A,然后将A的第一行元素乘以1,第二行乘以2,…,第五行乘以5。
解A=[17,0,1,0,15;23,5,7,14,16;4,0,13,0,22;10,12,19,21,3;11,18,25,2,19];
D=diag(1:5);D*A %用D左乘A,对A的每行乘以一个指定常数
例15: 输入x,y的值,并将它们的值互换后输出。
程序如下:
x=input('Input x please.');y=input('Input y please.');z=x;x=y;y=z;
disp(x);disp(y);
例16::求一元二次方程ax2 +bx+c=0的根。
程序如下:matlab考试题库及答案
a=input('a=?');b=input('b=?');c=input('c=?');d=b*b-4*a*c;
x=[(-b+sqrt(d))/(2*a),(-b-sqrt(d))/(2*a)];disp(['x1=',num2str(x(1)),',x2=',num2str(x(2))]);
例17:输入一个字符,若为大写字母,则输出其对应的小写字母;若为小写字母,则输出其对应的大写字母;若为数字字符则输出其对应的数值,若为其他字符则原样输出。
解:c=input('请输入一个字符','s');
if c>='A' & c<='Z'
disp(setstr(abs(c)+abs('a')-abs('A')));
elseif c>='a'& c<='z'
disp(setstr(abs(c)- abs('a')+abs('A')));
elseif c>='0'& c<='9'
disp(abs(c)-abs('0'));
else
disp(c);
end
例18:某商场对顾客所购买的商品实行打折销售,标准如下(商品价格用price来表示):
price<200 没有折扣
200≤price<500 3%折扣
500≤price<1000 5%折扣
1000≤price<2500 8%折扣
2500≤price<5000 10%折扣
5000≤price 14%折扣
输入所售商品的价格,求其实际销售价格。
解:price=input('请输入商品价格');
switch fix(price/100)
case {0,1} %价格小于200
rate=0;
case {2,3,4} %价格大于等于200但小于500
rate=3/100;
case num2cell(5:9) %价格大于等于500但小于1000
rate=5/100;
case num2cell(10:24) %价格大于等于1000但小于2500
rate=8/100;
case num2cell(25:49) %价格大于等于2500但小于5000
rate=10/100;
otherwise %价格大于等于5000
rate=14/100;
end
price=price*(1-rate) %输出商品实际销售价格
例19已知 ,当n=100时,求 的值。
解:程序如下:
y=0;n=100;for i=1:n;y=y+1/(2*i-1);End
例20:一个三位整数各位数字的立方和等于该数本身则称该数为水仙花数。输出全部水仙花数
解:for m=100:999
m1=fix(m/100);m2=rem(fix(m/10),10);m3=rem(m,10);
if m==m1*m1*m1+m2*m2*m2+m3*m3*m3;disp(m);end
例21:从键盘输入若干个数,当输入0时结束输入,求这些数的平均值和它们之和。
程序如下:
解:sum=0;cnt=0;val=input('Enter a number (end in 0):');
while (val~=0)
sum=sum+val;cnt=cnt+1;val=input('Enter a number (end in 0):');
end
if (cnt > 0)
Sum;mean=sum/cnt
end
例22 :求[100,200]之间第一个能被21整除的整数。
程序如下:
解:for n=100:200
if rem(n,21)~=0
Continue;end
break
end
例23: 若一个数等于它的各个真因子之和,则称该数为完数,如6=1+2+3,所以6是完数。求[1,500]之间的全部完数。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论