当前位置:文档之家› matlab练习题

matlab练习题


10.写出执行以下代码后,MATLAB命令窗口上显示的x矩阵的值 x=[0,1,0,2,0,3,0,4]; for k=1:8 if x(k)==0 x(k)=k;
else x(k)=2*k+1; end end disp(x); 1 5 3 9 5 13 7 17
11.写出执行以下代码后C,D,E的值 A=[1,2,3;4:6;7:9]; C=[A;[10,11,12]] D=C(1:3,[2 3]) E=C(2,[1 2]) C = 1 4 7 10 2 5 8 11 3 6 9 12
D = 2 5 8 3 6 9
E = 4 >> 12、输入 x,y 的值,并将它们的值互换后输出。 x=input('Input x please:'); y=input('Input y please:'); z=x; x=y; y=z; disp(x); disp(y); 5
13.当 n=100 时,求 y = ∑
15.一个三位整数各位数字的立方和等于该数本身则称该数为水仙花数。输出全 部水仙花数。
function function3()
x=[]; for i=100:999 n1=fix(i/100); n2=fix((i-n1*100)/10); n3=i-n1*100-n2*10; if (n1^3+n2^3+n3^3)==i x=[x i]; end end
i =1
n
1 的值。 2i − 1
y=0; n=100; for i=1:n y=y+1/(2*i-1); end y 14.某商场对顾客所购买的商品实行打折销售,标准如下(商品价格用 price 来 表示) : price<200 没有折扣 200≤price<500 3%折扣 500≤price<1000 5%折扣 1000≤price<2500 8%折扣 2500≤price<5000 10%折扣 5000≤price 14%折扣 输入所售商品的价格,求其实际销售价格。 function function2()
A=[1 0 0;1 1 0;0 0 1]; B=[2 3 4; 5 6 7;8 9 10]; H=vertcat(A,B) H= 1 1 0 2 5 8 0 1 0 3 6 9 0 0 1 4 7 10
S=horzcat(A,B) S= 1 1 0 0 1 0 0 0 1 2 5 8 3 6 9 4 7 10
并利用位于矩阵 A 的奇数行 4.利用列向量 (1, 2,3,L , 6 ) 建立一个范得蒙矩阵 A ,
T
偶数列的元素建立一个新的矩阵 B ,须保持这些元素的相对位置不变。 (范得蒙(Vandermonde)矩阵最后一列全为 1,倒数第二列为一个指定的向量, 其他各列是其后列与倒数第二列的点乘积。 可以用一个指定向量生成一个范得蒙 矩阵。在 MATLAB 中,函数 vander(V)生成以向量 V 为基础向量的范得蒙矩阵。 例如,A=vander([1;2;3;5])即可得到上述范得蒙矩阵。 )
16.用 if 语句实现下列程序:输入一个百分制成绩,要求输出成绩等级为 A、B、 C、D、E,其中 90-100 分为 A,80-90 分为 B,70-79 分为 C,60-69 分为 D,60 分以下为 E。 function function4() p=input('请输入分数:'); if p>=90 disp('A'); elseif p>=80 disp('B'); elseif p>=70 disp('C'); elseif p>=60 disp('D'); else disp('E'); end 17.若一个数等于它的各个真因子之和,则称该数为完数,如 6=1+2+3,所以 6
x=linspace(0,2*pi,1000); y1=0.2*exp(-0.5*x).*cos(4*pi*x); y2=2*exp(-0.5*x).*cos(pi*x); k=find(abs(y1-y2)<1e-2); x1=x(k); y3=0.2*exp(-0.5*x1).*cos(4*pi*x1); plot(x,y1,x,y2,'k:',x1,y3,'bp')
练习题
1. 计算复数 3+4i 与 5−6i 的乘积。 a=complex(3,4); b=complex(5,-6); s=a*b s= 39.0000 + 2.0000i 2.构建结构体 Students,属性包含 Name、Age 和 Email,数据包括{'Zhang',18, [‘zhang@’, ‘zhang@’]}、 {‘Wang’,21, []}和{‘Li’,[], []},构建后读取 所有 Name 属性值,并且修改‘Zhang’的 Age 属性值为 19。 ='zhang'; Student.Age=18; Student.Email='zhang@,zhang@'; Student Student = name: 'zhang' Name: 'zhang' Age: 18 Email: 'zhang@,zhang@' Student.Age=19 Student = Name: 'zhang' Age: 19 Email: 'zhang@,zhang@' 3. 采用向量构造符得到向量[1,5,9,…,41] A=1:4:41
V=[1,2,3,4,5,6];
A=vander(V); A A= 1 32 243 1024 3125 7776 1 16 81 256 625 1296 1 8 27 64 125 216 1 4 9 16 25 36 1 2 3 4 5 6 1 1 1 1 1 1
5.按水平和竖直方向分别合并下述两个矩阵:
8.分别查看第 5 题两个结果的各方向长度。
a=size(H)
a= 6 b=size(S) b= 3 6 3
9.分别计算第 5 题矩阵 A 和 B 的 A+B、A.* B 和 A\B。 A=[1 0 0;1 1 0;0 0 1]; B=[2 3 4;5 6 7;8 9 10]; S1=A+B S1 = 3 6 8 S2=A.*B S2 = 2 5 0 S3=A\B S3 = 2 3 8 3 3 9 4 3 10 0 6 0 0 0 10 3 7 9 4 7 11
2
1.5
1
0.5
0
-0.5
-1
-1.5
0
1
2
3
4
5
6
7
22.在同一窗口分别用红色实线和绿色虚线绘制 y1 = sin x 和 y 2 = cos x 在区间
[0, 4π ] 上的曲线,并用星号*标出两条曲线的交点以及建立图例;
x=linspace(0,4*pi,1000); y1=sin(x); y2=cos(x); k=find(abs(y1-y2)<1e-2); x1=x(k); y3= sin(x1); plot(x,y1, '-r',x,y2, '--g',x1,y3,'*')
19. 绘制函数 y = sin ( x ) cos ( x ) 在 [ −2, 2 ] 上的曲线,其中曲线为红实线。
x=-2:0.1:2; y=sin(x).*cos(x); plot(x,y,'-r')
0.5 0.4 0.3 0.2 0.1 0 -0.1 -0.2 -0.3 -0.4 -0.5 -2
是完数。求[1,10000]之间的全部完数. function function5() result = []; for n == mod(n, divisors); sumDivisors = sum(divisors(remainder == 0)); if n == sumDivisors result = [result, n]; end end result 18.求[1000,2000]之间第一个能被 17 整除的整数。 function function7() for n = 1000:2000 a=mod(n,17); if a==0 num=n break; end end
25.求函数 y = cos ( x ) 的 5 次拟合多项式 p ( x ) ,并绘制出 cos ( x ) 和 p ( x ) 在区间
[0, 2π ] 上的图形。
x=0:pi/10:2*pi; y=cos(x); p=polyfit(x,y,5); y1=polyval(p,x); plot(x,y,'-r'); hold on plot(x,y1, '--g')
0
5
10
15
20
25
legend('正弦曲线','余弦曲线','Location','North')
21.在同一坐标内,分别用不同线型和颜色绘制曲线 y1 = 0.2e −0.5 x cos ( 4π x ) , 和
y2 = 2e −0.5 x cos (π x ) x ∈ [ 0, 2π ] ,并标记两曲线交叉点。
x1=0:pi/10:2.*pi; x2=0:pi/10:2.*pi; y1=sin(x1); y2=cos(x2); plot(y1,'-g','linewidth',6); hold on plot(y2,'--r','linewidth',6);
相关主题