matlab第三章答案 下载本文

第1题:

从键盘输入一个3位数,将它反向输出。如输入639输出936. n1=fix(n/100); n2=rem(fix(n/10),10); n3=rem(n,10);

m=n3*100+n2*10+n1; disp(m)

请输入一个三位数:489 984 第2题 :

输入一个百分制成绩,要求输出成绩等级A、B、C、D、E。其中90~100分为A,80~89分为B、70~79分为C、60~69分为D,60分以下为E。 要求:(1)分别用if语句和switch语句实现。

(2)输入百分制成绩后要判断成绩的合理性,对不合理的成绩应输出错信息。

If语句:

>> s=input('请输入成绩分数:'); if s>=90&s<=100 disp('A'); elseif s>=80&s<=89 disp('B'); elseif s>=70&s<=79 disp('C'); elseif s>=60&s<=69 disp('D'); elseif s>=0&s<60 disp('E'); else

disp('false'); end 请输入成绩分数:89 B

Switch语句:

>> s=input('请输入成绩分数:'); switch fix(s/10) case {9,10} disp('A'); case {8}

disp('B'); case {7}

disp('C'); case {6}

disp('D'); case {5,4,3,2,1,0} disp('E');

otherwise

disp('false');

end

请输入成绩分数:88 B 第3题

输入20个数,求其中最大数和最小数。要求分别用循环结构和调用MATLAB的max函数、min函数来实现。 1循序结构

A=[1 2 3 4 5 6 7 23 32 12 53 1 23 53 5 235 31 8888 33 3 21]; min=A(1); max=A(1); for i=1:19

if A(i+1)>max max=A(i+1); end

if A(i+1)

8888 min = 1

2调用matlab函数 funtion f=max(A) f=A(1); for i=1:20;

m=A(i); %还可用A=input('ENTER A:');

if m>f; f=m; end end end

funtion f=min(A) f=A(1);

for i=1:20; %还可用A=input('ENTER A:'); m=A(i); if m

%还可用A=input('ENTER A:'); f=m; end end end

A=input('ENTER A:'); a=max(A); b=min(A); a b

第4题

e0.3a?e?0.3a0.3?asin(a?0.3)?lny=,当a取-3.0、-2.9、-2.8、、2.8、2.9、3.0时,求各

22点的函数值。要求分别用顺序结构和循环结构实现。

顺序结构

a=-3.0:0.1:3.0;

y=(exp(0.3*a)-exp(-0.3*a))/2.*sin(a+0.3)+log((0.3+a)/2); y

循环结构 a=-3.0;

while a<=3.0

y=(exp(0.3*a)-exp(-0.3*a))/2.*sin(a+0.3)+log((0.3+a)/2) a=a+0.1; end y

第5题

当n分别取100、1000、10000时,求下列各式的值: (1)

循环结构:

n=input('请输入一个数:'); sum=0; for i=1:n

sum=sum+1/(i*i); end sum

向量运算

n=input('请输入一个数:') a=1:1:n; b=1:1:n;

y=sum(1./(a.*b)); y

(2)循环结构

n=input('请输入一个数:') s=1; for i=1:n

s=s*(i+1)*(i+1)/(i*(i+2)); end s

向量运算

n=input('请输入一个数:'); a=2:2:2*n; b=1:2:(2*n-1); c=3:2:(2*n+1); e=(a.*a)./(b.*c); y=e.*e; y

n=input('请输入一个数:'); y=1;

a=2:2:2*n; b=1:2:(2*n-1); c=3:2:(2*n+1);

y=prod((a.*a)./(b.*c)); y

第6题

建立5x6矩阵,要求输出矩阵第n行元素。当n值超过矩阵的行数时,自动转为输出矩阵最后一行元素,并给出出错信息。

A=[1,2,3,4,5,6;2,3,4,5,6,7;3,4,5,6,7,8;4,5,6,7,8,9;5,6,7,8,9,0]; n=input('需要输出矩阵的行数:'); if n>0 & n<6 disp(A(n,:)); else

disp(A(5,:));disp('false!'); end

第7题 (1)

function f=factor(n) f=n+10*log(n^2+5); end

y=factor(40)/(factor(30)+factor(20)); (2)

function f=factor1(n) a=1:1:n;

b=2:1:(n+1); f=sum(a.*b); end

y=factor1(40)/(factor1(30)+factor1(20));

思考题

2(1)2.*N (2)1/2.*N(3)1./N(4)1./(N.*N) 4.(1)循环结构

n=input('请输入一个数:') y=0; for i=1:n

y=y+(-1)^(i-1)/(2*i-1); end y

向量运算

n=input('请输入一个数:'); a=1:4:(4*n-3); b=-3:-4:-(4*n-1); y=sum(1./a+1./b); y

4(2) 循环结构:

n=input('请输入一个数:'); y=0; for i=1:n y=y+1/(4^i); end y

向量运算:

n=input('请输入一个数:'); a=1:1:n;

y=sum(1./(4.^a)); y