实验1Matlab基本操作M文件和流程控制语句答案.docx
《实验1Matlab基本操作M文件和流程控制语句答案.docx》由会员分享,可在线阅读,更多相关《实验1Matlab基本操作M文件和流程控制语句答案.docx(7页珍藏版)》请在冰点文库上搜索。
![实验1Matlab基本操作M文件和流程控制语句答案.docx](https://file1.bingdoc.com/fileroot1/2023-4/30/cd3b7c91-bc43-434f-ba98-0fab2ebdc822/cd3b7c91-bc43-434f-ba98-0fab2ebdc8221.gif)
实验1Matlab基本操作、M文件和流程控制语句-答案
1、计算以下表达式的值,将结果按不同格式输出。
掌握format命令的使用方法。
(1)
(2),其中
(3),其中
以
(1)为例,其余类似。
(1)>>y=1.3^3*sin(pi/3)*sqrt(26)
y=
9.7017
>>formatlong
>>y=1.3^3*sin(pi/3)*sqrt(26)
y=
9.70168931166114
>>formatshorte
>>y=1.3^3*sin(pi/3)*sqrt(26)
y=
9.7017e+000
>>formatbank
>>y=1.3^3*sin(pi/3)*sqrt(26)
y=
9.70
>>formatrat
>>y=1.3^3*sin(pi/3)*sqrt(26)
y=
2862/295
(2)>>formatshort
>>x=[21+2*i;-0.455]
x=
2.00001.0000+2.0000i
-0.45005.0000
>>y=(1/2)*log(x+sqrt(1+x^2))
y=
0.7114-0.0253i0.8968+0.3658i
0.2139+0.9343i1.1541-0.0044i
(3)
>>formatshort
>>x=-3:
0.1:
3;
>>y=((exp(0.3*x)-exp(-0.3*x))/2).*sin(x+0.3)+log((0.3+x)/2)
2、已知:
求下列表达式的值:
A+6*B和A-B+I
A*B和A.*B
A^3和A.^3
A/B和B\A
[A,B]和[A([1,3],:
);B^2]
>>A=[1234-4;34787;3657];
>>B=[13-1;203;3-27];
>>A+6*B
ans=
1852-10
467105
215349
>>A-B+eye(3)
ans=
1231-3
32884
0671
>>A*B
ans=
684462
309-72596
154-5241
>>A.*B
ans=
121024
680261
9-13049
>>A^3
ans=
3722623382448604
247370149188600766
78688454142118820
>>A.^3
ans=
172839304-64
39304343658503
27274625343
>>A/B
ans=
16.4000-13.60007.6000
35.8000-76.200050.2000
67.0000-134.000068.0000
>>B\A
ans=
109.4000-131.2000322.8000
-53.000085.0000-171.0000
-61.600089.8000-186.2000
>>[A,B]
ans=
1234-413-1
34787203
36573-27
>>[A([1,3],:
);B^2]
ans=
1234-4
3657
451
11019
20-540
3、已知,
(1)当时,求y的值。
(2)当时,求y的值。
(1)先创建文件函数:
f.m
functionf=f(n)
f=n+10*log(n^2+5);
然后在主窗口调用:
>>y=f(40)/(f(30)+f(20))
y=
0.6390
(2)先创建文件函数:
f.m
functionf=f(n)
f=0;
fori=1:
n
f=f+i*(i+1);
end
或用while语句创建函数:
functionf=f(n)
f=0;
whilen>=1
f=f+n*(n+1);
n=n-1;
end
然后在主窗口调用:
>>y=f(40)/(f(30)+f(20))
y=
1.7662
4、请分别用if和switch语句实现。
输入一个百分制成绩,要求输出成绩等级A、B、C、D、E。
其中90分~100分为A,80分~89分为B,70分~79分为C,60分~69分为D,60分以下为E。
n=input('pleaseenterascores:
');
ifn>=90
disp('A')
elseifn>=80
disp('B')
elseifn>=70
disp('C')
elseifn>=60
disp('D')
else
disp('E')
end
用switch语句:
n=input('pleaseenterascores:
');
m=fix(n/10)
switchm
case10
disp('A')
case9
disp('A')
case8
disp('B')
case7
disp('C')
case6
disp('D')
otherwise
disp('E')
end
5、已知
求中:
这20个数中的最大值,最小值,这20个数的总和。
统计正数、零、负数的个数。
显示的值。
f1=1;
f2=0;
f3=1;
max=1;
min=0;
n=4;
positive=2;
negative=0;
zero=1;
sum=2;
s=[101];
whilen<=20
f=f3-2*f2+f1;
sum=sum+f;
iff>max
max=f;
elseiffmin=f;
end
iff>0
positive=positive+1;
elseiff<0
negative=negative+1;
else
zero=zero+1;
end
s=[sf];
f1=f2;
f2=f3;
f3=f;
n=n+1;
end
fprintf('themaxvalue=%f\ntheminvalue=%f\n',max,min);
fprintf('thesum=%f\n',sum);
fprintf('thenumberofpositive:
%f\n',positive);
fprintf('thenumberofnegative:
%f\n',negative);
fprintf('thenumberofzero:
%f\n',zero);
f=s
或:
f1=1;
f2=0;
f3=1;
max=1;
min=0;
n=4;
positive=2;
negative=0;
zero=1;
sum=2;
g
(1)=1;
g
(2)=0;
g(3)=1;
whilen<=20
f=f3-2*f2+f1;
g(n)=f
sum=sum+f;
iff>max
max=f;
elseiffmin=f;
end
iff>0
positive=positive+1;
elseiff<0
negative=negative+1;
else
zero=zero+1;
end
f1=f2;
f2=f3;
f3=f;
n=n+1;
end
fprintf('themaxvalue=%f\ntheminvalue=%f\n',max,min);
fprintf('thesum=%f\n',sum);
fprintf('thenumberofpositive:
%f\n',positive);
fprintf('thenumberofnegative:
%f\n',negative);
fprintf('thenumberofzero:
%f\n',zero);
f=g
结果:
themaxvalue=65.000000
theminvalue=-115.000000
thesum=-135.000000
thenumberofpositive:
9.000000
thenumberofnegative:
9.000000
thenumberofzero:
2.000000
f=
Columns1through10
10120-3-154-7
Columns11through20
-10821-5-39-86542-96-115
6、编写一个函数文件,输入3个参数,前2个为矩阵,第3个是数字0或1,如果是0,则计算矩阵乘积A*B,否则计算A.*B。
functionC=f(A,B)
A=input('EntermatrixA:
');
B=input('EntermatrixB:
');
k=input('Enter0or1please:
');
C=zeros(size(A,1),size(A,2));%此行语句可略掉
ifk==0
ifsize(A,2)==size(B,1)
C=A*B;
else
disp('A与B无法相乘')
end
else
ifsize(A)==size(B)
fori=1:
size(A,1)%返回A的行数
forj=1:
size(A,2)%返回A的列数
C(i,j)=A(i,j)*B(i,j);
end
end
else
disp('只有同型矩阵才能点乘')
end