matlab习题解答

更新时间:2024-04-06 02:11:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

上机练习题一

班级: 姓名: 学号:

1.建立起始值=3,增量值=5.5,终止值=44的一维数组x 答案: x=(3:5.5:44)

o

2.写出计算 Sin(30)的程序语句. 答案: sin(pi*30/180) 或 sin(pi/6)

3.矩阵

?323??A??426????781??,矩阵

?111??B??222????333??;分别求出A?B及A与

B中对应元素之间的乘积.

答案:A = [3,2,3; 4,2,6; 7,8,1]

B = [1,1,1; 2,2,2; 3,3,3] A*B;A.*B

4计算行列式的值A?432326。答案:det(A)

7815对矩阵

?323??A??426????781??进行下述操作。

(1)求秩。答案:rank(A)

(2)求转置。答案:A' (3) 对矩阵求逆,求伪逆。答案:inv(A) ,pinv(A) (4) 左右反转,上下反转。答案:fliplr(A),flipud(A)

(5) 求矩阵的特征值. 答案:[u,v]=eig(A) (6) 取出上三角和下三角. 答案:triu(a) tril(a)

(7)以A为分块作一个3行2列的分块矩阵。答案:repmat(a)

6 计算矩阵

?535??374?????798??与

?242??679?????836??之和。

>> a=[5 3 5;3 7 4;7 9 8];

>> b=[2 4 2;6 7 9;8 3 6]; >> a+b 7 计算a????6293?75??与b????2441?68??的数组乘积。

>> a=[6 9 3;2 7 5];

>> b=[2 4 1;4 6 8]; >> a.*b ans =

12 36 3

8 42 40 8 已知:

?123??a???456???789??,分别计算a的数组平方和矩阵平

方,并观察其结果。

>> a=[1 2 3;4 5 6;7 8 9]; >> a.^2 ans =

1 4 9 16 25 36 49 64 81 >> a^2 ans =

30 36 42 66 81 96 102 126 150

上机练习题二

班级: 姓名: 学号:

1 对于AX?B,如果

?492??A???764???357??,

?37??B???26???28??,求解X。

>> A=[4 9 2;7 6 4;3 5 7];

>> B=[37 26 28]’; >> X=A\\B X =

-0.5118 4.0427 1.3318

2 角度x??304560?,求x的正弦、余弦、正切和余切。 >> x=[30 45 60]; >> x1=x/180*pi; >> sin(x1) ans =

0.5000 0.7071 0.8660 >> cos(x1) ans =

0.8660 0.7071 0.5000 >> tan(x1) ans =

0.5774 1.0000 1.7321 >> cot(x1) ans =

1.7321 1.0000 0.5774

43 将矩阵a???5?2?7??1??59?c?、b????7和?62?组合成两个新矩阵: 83????(1)组合成一个4?3的矩阵,第一列为按列顺序排列的a矩阵元素,第二列为按列顺序排列的b矩阵元素,第三列为按列顺序排列的c矩阵元素,即 ?75?

?4?586???219??

?732?? ( 2 )按照 a、b、c的列顺序组合成一个行矢量,即?452778135692? 答案:a=[4 2;5 7]; b=[7 1;8 3]; c=[5 9;6 2]; % (1)

>> d=[a(:) b(:) c(:)] d =

4 7 5 5 8 6 2 1 9 7 3 2 % (2)

>> e=[a(:);b(:);c(:)]' e =

4 5 2 7 7 8 1 3 6 9 2

或利用(1)中产生的d >> e=reshape(d,1,12)

5

ans =

4 5 2 7 7 8 1 3 5 6 9 2

4求解在x=8时多项式(x-1)(x-2) (x-3)(x-4)的值。 >> p=poly([1 2 3 4]); >> polyvalm(p,8) ans = 840

5求方程3x?7x?9x?23?0的全部根。

p=[3,7,9,0,-23]; %建立多项式系数向量 x=roots(p) %求根

432

上机练习题三

班级: 姓名: 学号:

1、 设x是数组,求均值和方差 解:函数文件如下:

function [xx,s]=func1(x) n=length(x); xx=sum(x)/n;

s=sqrt((sum(x.^2)-n*xx^2)/(n-1)); 命令窗口:

>> x=[1 2 3 4 5];[xx,s]=func1(x) 2、求满足?mln(1?n)?100的最小m值

n?0s=0; n=0;

while(s<=100) s=s+log(1+n); n=n+1; end n,s

3、用循环语句形成

Fibonacci

F1?F2?1,F1?5k?Fk?1?Fk?2,k?3,4,....。并验证极限FkF? (提示:

k?12 计算至两边误差小于精度1e-8为止) 解: 求Fibonacci数列的函数文件: function f=fun(n)

if n<=2 f=1; else

f=fun(n-1)+fun(n-2); end

数列

验证极限的函数文件:

function [k,a]=funTest(e) a=abs(1-(1+sqrt(5))/2); k=2;

while(a>e) k=k+1;

a=abs(fun(k)/fun(k-1)-(1+sqrt(5))/2); end 命令行:

>> [k,a]=funTest(10^-8) k = 21 a =

9.7719e-009 或者M文件如下:

clear; F(1)=1;F(2)=1;k=2;x=0; e=1e-8; a=(1+sqrt(5))/2; while abs(x-a)>e k=k+1; F(k)=F(k-1)+F(k-2); x=F(k)/F(k-1); end a,x,k 4、分别用for和while循环结构编写程序,求出K??23,

106i?1i并考虑一种避免循环语句的程序设计,比较各种算法的运行时间。

解:for循环结构:M文件loop.m

k=0;

for i=1:10^6

k=k+sqrt(3)*2^-i; end k

while循环结构:M文件loop1.m

k=0;i=1;

while i<=10^6

k=k+sqrt(3)*2^(-i); i=i+1; end k

非循环结构:M文件nonLoop.m i=1:10^6;

x=sqrt(3)*(2.^-i); k=sum(x) 速度比较:>>tic;loop;toc %循环结构的执行时间

k =

1.7321

Elapsed time is 1.813000 seconds.

>> tic;nonLoop;toc %非循环结构的执行时间

k =

1.7321

Elapsed time is 1.094000 seconds.

上机练习题四

班级: 姓名: 学号:

1、作图描述气温变化 >> x=0:24;

>>

y=[15,14,14,14,14,15,16,18,20,22,23,25,28,31,32,31,29,27,25,24,22,20,18,17,16]; >> plot(x,y)

2、作出下列函数图形

(1)y?xsin(x?x?2) ?2?x?2 (分别使用plot和fplot完成) 解:>> fplot('x^2*sin(x^2-x-2)',[-2 2]) %fplot方法 >>

x=-2:0.1:2;y=x.^2.*sin(x.^2-x-2);plot(x,y) %plot方法 如图(4.1)

(2)x4?y9?1 (椭圆 提示:用参数方程)

2222解:>> r=-pi:0.1:pi;x=2*cos(r);y=3*sin(r);plot(x,y) % 如图(4.2) 解法二

x=-2:1/100:2;

y1=3*sqrt(1-x.^2/4); y2=-3*sqrt(1-x.^2/4);

plot(x,y1,'r-',x,y2,'r-'); axis equal tight;

图(4.1) 图(4.2)

(3)z?x?y (抛物面) x?3,y?3 解:(错误)>> x=[-3:0.1:3];y=[-3:0.1:3];z=x.^2+y.^2; plot3(x,y,z) % 如图(4.31) (正确)>> xa=-3:0.1:3;ya=-3:0.1:3;[x,y]=meshgrid(xa,ya); % 如图(4.32)

>> z=x.^2+y.^2;mesh(x,y,z); >> surf(x,y,z)

22

图(4.31)error 图(4.32)

(4)曲面z?x?3x?y?2x?2y?2xy?6,x?3,?3?y?13

解: >> xa=linspace(-3,3,100);ya=linspace(-3,13,100); >> [x,y]=meshgrid(xa,ya);

>> z=x.^4+3*x.^2+y.^2-2*x-2*y-2*x.^2.*y+6; >> mesh(x,y,z)

4222>> surf(x,y,z)

(5)空间曲线x?sint,y?cost,z?cos(2t),0?t?2

解:>> t=linspace(0,2,50);x=sin(t);y=cos(t);z=cos(2*t); >> plot3(x,y,z)

(6)半球面x?2sin?cos?,y?2sin?sin?,z?2cos?,0???360,0???90 解: >>a=linspace(0,2*pi,50);b=linspace(0,pi/2,50); >> [a,b]=meshgrid(a,b);

>> x=2*sin(a).*cos(b);y=2*sin(a).*sin(b);z=2*cos(a); >> surf(x,y,z)

(7)三条曲线合成图y?sinx,y?sintsin(10x),y??sinx,0?x?? 解: >>x=linspace(0,pi,50);y1=sin(x); >> plot(x,y1);hold on; >> y2=sin(x).*sin(10*x); >> plot(x,y2); >> y3=-sin(x); >> plot(x,y3); >> hold off;

??123

3、作下列分段函数图

?1.1x?1.1?y??xx?1.1??1.1x??1.1?

x=-5:0.1:5;

for i=1:length(x) if x(i)>1.1 y(i)=1.1; elseif x(i)<-1.1 y(i)=-1.1; else

y(i)=x(i); end end

plot(x,y); grid on;

4、用MATLAB函数表示下列函数,并作图。

?0.5457exp(?0.75y2?3.75x2?1.5x),x?y?1?p(x,y)??0.7575exp(?y2?6x2),?1?x?y?1?0.5457exp(?0.75y2?3.75x2?1.5x),x?y??1?

解:建立M文件pxy如下:

xa=-2:0.05:2;ya=xa;

nx=length(xa);ny=length(ya); [x,y]=meshgrid(xa,ya); z=zeros(nx,ny);

[a1,b1]=find(x+y>1); %第a1列b1行对应的

x+y>1 %值是第a1 列对应的(x对应列;x值是y对应行xa(a1)) ;第

b1行对应的yz((a1-1)*ny+b1)=0.5457*exp(-0.75*ya(b1).^2-3.75*ya(b1)

xa(a1).^2-1.5*xa(a1)); [a2,b2]=find(x+y<=1&x+y>-1);

z((a2-1)*ny+b2)=0.7575*exp(-ya(b2).^2-6*xa(a2).^2);

[a3,b3]=find(x+y<=-1);

z((a3-1)*ny+b3)=0.5457*exp(-0.75*ya(b3).^2-3.75*xa(a3).^2+1.5*xa(a3)); 命令窗口:surf(x,y,z); 运行结果如右图:>> pxy

或者 M 文件如下: (xa,ya);

clear;close;

xa=-2:0.1:2;ya=-2:0.1:2;[x,y]=meshgrid (k1).^2-1.5*x(k1));

z=zeros(size(x)); k1=find(x+y>1);

z(k1)=0.5457*exp(-0.75*y(k1).^2-3.75*x ;

k2=find(x+y<=1&x+y>-1);

z(k2)=0.7575*exp(-y(k2).^2-6*x(k2).^2) k3=find(x+y<-1);

(k3).^2+1.5*x(k3)); z(k3)=0.5457*exp(-0.75*y(k3).^2-3.75*x mesh(x,y,z);

上机练习题五

号:班级: 姓名:

学1解:、运行>>demo

demo 2、查询trapz的功能、用法、目录、程序结构、相同目录下其它文件

解: >> help trapz ――功能用法

>> type trapz――程序结构,源码 >> which trapz――所在目录

>> help C:\\MATLAB6p5\\toolbox\\matlab\\datafun――该目录下其它文件

3在[0,4pi]画sin(x),cos(x)(在同一个图象中); 其中cos(x)图象用红色小圆圈画.并在函数图上标注 “y=sin(x)”, “y=cos(x)” ,x轴,y轴,标题为“正弦余弦函数图象”. x=linspace(0,4*pi,100); y=sin(x); plot(x,y);

gtext('y = sin(x)'); % 图形注解,注意要用鼠标定位 hold on; y=cos(x);

plot(x,y,'ro');

gtext ('y = cos(x)'); % 图形注解 xlabel('x轴'); % x轴注解 ylabel('y轴'); % y轴注解

title('正弦余弦函数图象'); % 图形标题

4从键盘输入若干个数,当输入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

5若一个数等于它的各个真因子之和,则称该数为完数,如6=1+2+3,所以6是完数。求[1,500]之间的全部完数。 for m=1:500 s=0;

for k=1:m/2 if rem(m,k)==0 s=s+k; end end

if m==s

disp(m);

end end

上机练习题六

班级: 姓名: 学号:

1 假定数据点来源为:f(x)?(x?3x?5)esinx,试根据生成的数据进行插值处理,得出较平滑的曲线。

x=0:.12:1;y=(x.^2-3*x+5).*exp(-5*x).*sin(x);plot(x,y,x,y,'o')

x1=0:.02:1;y0=(x1.^2-3*x1+5).*exp(-5*x1).*sin(x1); y1=interp1(x,y,x1);

>> y2=interp1(x,y,x1,'cubic'); >> y3=interp1(x,y,x1,'spline'); >> y4=interp1(x,y,x1,'nearest'); >> plot(x1,[y1;y2;y3;y4],':',x,y,'o',x1,y0)或者plot(x1,[y1',y2',y3',y4'],':',x,y,'o',x1,y0)

2 用不同插值的方法计算sin(x)在pi/2的值 clear clc

x=0:0.2:pi;%产生包含被插值点的采样点(做成一个向量)

y=sin(x);%求出各采样点对应的样本值

y1=interp1(x,y,pi/2);%用默认的'linear'方法计算sin(pi/2) y2=interp1(x,y,pi/2,'nearest');%用默认的'linear'方法计

2?5x算sin(pi/2)

y3=interp1(x,y,pi/2,'cubic');%用三次多项式插值方法计算sin(pi/2)

y4=interp1(x,y,pi/2,'spline');%用三次样条插值方法计算sin(pi/2)

y5=spline(x,y,pi/2);%直接用'spline'方法计算sin(pi/2),功能与y4相同

disp('各种方法的插值结果:') out=['y1=', num2str(y1) 'y2=',num2str(y2); 'y3=',num2str(y3)] out2=['y4=',num2str(y4) 'y5=',num2str(y5)] 3求

?dx?dt?4x?2y?dy??2x?y?dt 的通解

[x,y]=dsolve('Dx=4*x-2*y','Dy=2*x-y', 't') %P149(3)的求解

[x,y]=dsolve('Dx=a*y','Dy=-b*x ', 'x(0)=x0', 'y(0)=y0', 't')

y=dsolve('Dy=(b*x)/(a*y)', 'y(0)=y0','x'); 4

?'y2?t?2?y?,  0?t?1求?的数值解,并与精确解y(t)?t?1?1相比较。4(t?1)?y(0)?2?

方法一:

%微分方程的M函数funt.m文件 function y=funt(t,y) y=(y^2-t-2)/4/(t+1);

%以下是求解的脚本m函数,可自由取名,然后在command窗口调用该函数求解. ts=[0,10];%自变量的求解区间 y0=2;%初值条件

[t,y]=ode23('funt',ts,y0);%用2,3阶龙格库塔方法求‘funt’文件里的微分方程

y1=sqrt(t+1)+1;%求精确解对应点上的函数值

[t,y,y1]%以三列的形式显示结果,其中第一列为采样点t对应的值,第二列为t对应的数值解,第二列为t对应的精确解。

方法二:

%或者直接用内建函数编写待求的微分方程,在一个M脚本文件里执行求解。

funt=inline('(y^2-t-2)/4/(t+1)') %内建函数编写待求的微分方程

ts=[0,10];%自变量的求解区间 y0=2;%初值条件

[t,y]=ode23(funt,ts,y0);%用2,3阶龙格库塔方法求‘funt’文件里的微分方程

y1=sqrt(t+1)+1;%求精确解对应点上的函数值 [t,y,y1] 5

lorenz模型的状态方程表示为?1(t)???x1(t)?x2(t)x3(t)x?2(t)???x2(t)??x3(t)x?3(t)??x2(t)x1(t)??x2(t)?x3(t)x8取??10,??28,??,求解微分方程组,并绘制系统相平面图象。3

第一种方法建立lorenz函数模型的状态方程

function xp=lorenz(t,x)%建立lorenz函数模型的状态方程

xp=[-8/3,0,x(2);0,-10,10;-x(2),28,-1]*x%表明x是一个三维向量,前面是一个线性方程组的系数矩阵,xp%是一个三维的输出表示x(1),x(2),x(3)的一阶导数向量。

第二种方法建立lorenz函数模型的状态方程

function xp=lorenz1(t,x)%建立lorenz函数模型的状态方程

xp=[-8/3*x(1)+x(2)*x(3);-10*x(2)+10*x(3);-x(2)*x(1)+2

8*x(2)-x(3)];

%求解微分方程 clear;clc;

x0=[0,0,eps]';%三个初值条件构成的向量 [t,x]=ode23('lorenz',[0,100],x0); [t,x]

plot(t,x),grid,pause%绘制解x(1),x(2),x(3)各自相对于变量t的图象,按任意键后继续下面的程序

figure;plot3(x(:,1),x(:,2),x(:,3));%绘制解x(1),x(2),x(3)的关于系统的相平面图象 axis([10,40,-20,20,-20,20]);

上机练习题七

班级: 姓名: 学号:

2

1有一组测量数据如下表所示,数据具有y=x的变化趋势,用最小二乘法求解y。

1.2.3.4.x 1 2 3 4 5 5 5 5 5 -12.5.8.12161826y 3 .4 7 9 4 .2 .6 .8 .2

>> x=[1 1.5 2 2.5 3 3.5 4 4.5 5]'

>> y=[-1.4 2.7 3 5.9 8.4 12.2 16.6 18.8 26.2]' >> e=[ones(size(x)) x.^2]

>> c=e\\y

>> x1=[1:0.1:5]';

>> y1=[ones(size(x1)),x1.^2]*c; >> plot(x,y,'ro',x1,y1,'k')

2求下列线性方程组的解 (1)

??41?1??x1??9??32?6????x?2?????2?

??53???1???x3????1??解1];x=a\\b :>> a=[4 1 -1;3 2 -6;1 -5 3];b=[9; x =

%唯一解 2.0213 2.3830 1.4894 (2)

??4?33??x1??????1?32?6x????2

????2?????1?53???x3????1??解3];b=[-1;-2;1];x=a\\b :>> a=[4 2

-6;1

x =

-3 %唯一解3;3 -0.4706 -0.2941 0 (3)??41??1?32???x1????x???1? ??1?5??2?????1??解

>>

a=[4

1;3

-2; -5

2;1

-5];b=[1;1;1];x=a\\b %最小二乘近似解 x =

0.3311 -0.1219 (4)

?x1?21?11?????1??121?1??x2???2????x???3??1121???x???3???4?,求通解

解:>> a=[2 1 -1 1;1 2 1 -1; 1 1 2 1];b=[1;2;3];

>> rank(a),rank([a,b]) ans = 3 ans =

3 %说明有无穷多解 >> rref([a,b]) %行最简化 ans =

1.0000 0 0 1.5000 1.0000

0 1.0000 0 -1.5000 0

0 0 1.0000 0.5000 1.0000

%通解为:x??1.5x?1,x?1.5x,x??0.5x?1

3、求下列矩阵的行列式、逆、特征值和特征向量

142434(1)

?41?1???32?6???1?53???

-5

解:>> a=[4 1 -1;3 2 -6;1 3];det(a),inv(a),[v,d]=eig(a) ans =

-94 行列式 ans =

0.2553 -0.0213 0.0426

0.1596 -0.1383 -0.2234 矩阵的逆

0.1809 -0.2234 -0.0532 v =

0.0185 -0.9009 -0.3066

-0.7693 -0.1240 -0.7248 特征向量

-0.6386 -0.4158 0.6170 d =

-3.0527 0 0

0 3.6760 0 特征值

0 0 8.3766 (2)

1??43???33?5??1?53???

解:>> a=[4 3 1;3 3 -5;1 -5 3];det(a),inv(a),[v,d]=eig(a) ans =

-124 行列式 ans =

0.1290 0.1129 0.1452

0.1129 -0.0887 -0.1855 矩阵的逆

0.1452 -0.1855 -0.0242 v =

0.3757 -0.8583 0.3496

-0.6881 -0.0056 0.7255 特征向量

-0.6208 -0.5131 -0.5927 d =

-3.1480 0 0

0 4.6176 0 特征值

0 0 8.5304 (3)

?5765????71087??68109????57910???

解:>> a=[5 7 6 5;7 10 8 7;6 8 10 9;5 7 9 10];det(a),inv(a),[v,d]=eig(a) ans =

1 行列式 ans =

68.0000 -41.0000 -17.0000 10.0000

-41.0000 25.0000 10.0000 -6.0000 矩阵的逆

-17.0000 10.0000 5.0000 -3.0000 10.0000 -6.0000 -3.0000 2.0000

v =

0.8304 0.0933 0.3963 0.3803

-0.5016 -0.3017 0.6149 0.5286 特征向量

-0.2086 0.7603 -0.2716 0.5520 0.1237 -0.5676 -0.6254 0.5209 d =

0.0102 0 0 0 0 0.8431 0 0

0 0 3.8581 特征值

0 0 0 30.2887 n=5;

tria = 6*eye(n-1); %构造上三角 rown = zeros(1,n-1); coln = zeros(n,1); tria = [tria;rown]; tria = [coln,tria]

eyeb = 5*eye(n); %构造对角阵

tric = 1*eye(n-1); %构造下三角 tric = [rown;tric];

0 (4) tric = [tric,coln]

A=tria+eyeb+tric

4求多项式的根,并分析误差大小 (1)x?x?1

解:>> A=[1,1,1];roots(A) ans =

-0.5000 + 0.8660i -0.5000 - 0.8660i

>> y=polyval(A,ans) %验证 y =

1.0e-015 * 0.3331 0.3331 (2)3x?4x?2x?1

解:>> A=[3 0 -4 0 2 -1];x=roots(A) x =

-0.9479 + 0.3845i -0.9479 - 0.3845i 1.0000 0.4479 + 0.3435i 0.4479 - 0.3435i

>> y=polyval(A,x) %验证 y =

1.0e-013 *

-0.0144 - 0.1138i -0.0144 + 0.1138i -0.0888 0.0044 - 0.0083i 0.0044 + 0.0083i (3)5x?6x?8x?5x

解: >> A=[5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -6 8 0 0 0 -5 0 0];x=roots(A)

>> y=polyval(A,x) (4) (2x?3)?4 解:p1=[2 33];p2=conv(p1,p1); p=conv(p2,p1); %(2x+3)

n=length(p); for (i=1:n-1) q(i)=p(i); end

q(n)=p(n)-4; 3

%(2x+3)-4

x=roots(q)

253237623结果:x =

-1.8969 + 0.6874i -1.8969 - 0.6874i -0.7063

验证:>> y=polyval(q,x) y =

1.0e-014 *

-0.7105 - 0.6217i -0.7105 + 0.6217i 0

上机练习题八

班级: 姓名: 学号:

1有一正弦衰减数据y=sin(x).*exp(-x/10),其中x=0:pi/5:4*pi,用三次样条法进行插值。 >> x0=0:pi/5:4*pi;

>> y0=sin(x0).*exp(-x0/10); >> x=0:pi/20:4*pi; >> y=spline(x0,y0,x);

>> plot(x0,y0,'or',x,y,'b')

2 编制一个解数论问题的函数文件:取任意整数,若是偶数,则用2除,否则乘3加1,重复此过程,直到整数变为1。

function c=collatz(n) % collatz

% Classic “3n+1” Ploblem from number theory c=n;

while n>1

if rem(n,2)==0 n=n/2; else

n=3*n+1; end

c=[c n]; end

3有一组学生的考试成绩(见表),根据规定,成绩在100分时为满分,成绩在90~99之间时为优秀,成绩在80~89分之间时为良好,成绩在60~79分之间为及格,成绩在60分以下时为不及格,编制一个根据成绩划分等级的程序。

学生王 张 刘 李 陈 杨 于 黄 郭 赵 姓名 1成 7859896560绩 2 3 6 4 0 8 6 8 4 5

Name=['王','张','刘','李','陈','杨','于','黄','郭','赵']; Marks=[72,83,56,94,100,88,96,68,54,65];

% 划分区域:满分(100),优秀(90-99),良好(80-89),及格(60-79),不及格(<60)。

n=length(Marks); for i=1:n

a{i}=89+i; b{i}=79+i; c{i}=69+i; d{i}=59+i; end; c=[d,c];

% 根据学生的分数,求出相应的等级。 for i=1:n

switch Marks(i)

case 100 %得分为100时 Rank(i,:)=' 满分';

case a %得分在90~99之间

Rank(i,:)=' 优秀';

case b %得分在80~89之间 Rank(i,:)=' 良好';

case c %得分在60~79之间 Rank(i,:)=' 及格';

otherwise %得分低于60。 Rank(i,:)='不及格'; end end

% 将学生姓名,得分,级等信息打印出来。 disp(' ')

disp(['学生姓名 ',' 得分 ',' 等级']); disp('--------------------------') for i=1:10;

disp([' ',Name(i),' ',num2str(Marks(i)),' ',Rank(i,:)]); end

学生姓名 得分 等级 ----------------------------------------- 王 72 及格 张 83 良好 刘 56 不及格 李 94 优秀 陈 100 满分 杨 88 良好 于 96 优秀 黄 68 及格 郭 54 不及格 赵 65 及格

4 编写一段程序,能够把输入的摄氏温度转化成华氏温度,也能把华氏温度转换成摄氏温度。

k=input('选择转换方式(1--摄氏转换为华氏,2--华氏转换为摄氏):'); if k~=1 & k~=2

disp('请指定转换方式') break end

tin=input('输入待转变的温度(允许输入数组):');

if k==1

tout=tin*9/5+32; % 摄氏转换为华氏 k1=2; elseif k==2

tout=(tin-32)*5/9; % 华氏转换为摄氏 k1=1; end

str=[' ?C';' ?F'];

disp(['转换前的温度', ' ', '转换后的温度']) disp([' ',num2str(tin),str(k,:), ' ', num2str(tout),str(k1,:)])

本文来源:https://www.bwwdw.com/article/fpor.html

Top