matlab课后习题解答.docx
《matlab课后习题解答.docx》由会员分享,可在线阅读,更多相关《matlab课后习题解答.docx(12页珍藏版)》请在冰豆网上搜索。
matlab课后习题解答
MATLAB程序设计与应用
课后习题解答
班级:
姓名:
学号:
3.写出完成下列操作的命令。
(1)、将矩阵A第2~5行中第1、3、5列元素赋给矩阵B。
B=A(2:
5,[1、3、5])
(2)、删除矩阵A的第七号元素。
A(7)=[]
(3)、将矩阵A的每个元素值加30。
A=A+30
(4)、求矩阵A的大小和维数。
Size(A)ndims(A)
(5)、将向量t的0元素用机器零代替。
t=eps
(6)、将含有12个元素的向量x转换成3*4矩阵。
Reshape(x,3,4)
(7)、求一个字符串的ASCII码。
double()
(8)、求一个ASCII码所对应的字符。
Char()
4、下列命令执行后,L1、L2、L3、L4的值分别是多少?
>>A=1:
9;
>>B=10-A;
>>L1=A==B;
>>L2=A<=5;
>>L3=A>3&A<7;
>>L4=find(A>3&A<7);
>>L1,L2,L3,L4;
L1=
000010000
L2=
111110000
L3=
000111000
>>L4
L4=
456
5、
(1)取出A的前3行构成矩阵B,前两列构成矩阵C,右下角3*2子矩阵构成D,B与C的乘积构成矩阵E。
(2)分别求E=10&A<25)。
>>A=[2310-0.7780;41-45655;325032;6-9.54543.14];
>>B=A(1:
3,:
);
>>C=(:
1:
2);
>>C=A(:
1:
2);
>>D=A(2:
4,3:
4);
>>E=B*C;
>>Eans=
01
00
01
>>E&D
ans=
11
01
11
>>E|D
ans=
11
11
11
>>~E|~D
ans=
00
10
00
>>find(A>=10&A<25)
ans=
1
5
当A=[34,NaN,Inf,-Inf,-pi,eps,0]时,分析下列函数的执行结果:
all(A),any(A,isnan(A),isinf(A),isfinite(A).)
>>A=[34,NaN,Inf,-Inf,-pi,eps,0];
>>all(A)
ans=
0
>>isnan(A)
ans=
0100000
>>isinf(A)
ans=
0011000
>>isfinite(A)
ans=
1000111
7.用结构体矩阵来存储5名学生的基本情况数据,每名学生的数据包括学号、姓名、专业和6门课程的成绩。
A
(1).x1=’学号’;A
(1).x2=’姓名’;A
(1).x3=’专业’;A
(1).x4.x41=’成绩1’;……….
A
(2).x1=’学号’;A
(2).x2=’姓名’;A
(2).x3=’专业’;A
(2).x4.x41=’成绩1’;……….
A(3).x1=’学号’;A(3).x2=’姓名’;A(3).x3=’专业’;A(3).x4.x41=’成绩1’;……….
A(4).x1=’学号’;A(4).x2=’姓名’;A(4).x3=’专业’;A(4).x4.x41=’成绩1’;……….
A(5).x1=’学号’;A(5).x2=’姓名’;A(5).x3=’专业’;A(5).x4.x41=’成绩1’;……….
8、建立单元矩阵B并回答有关问题。
>>B={1;'Brenden';reshape(1:
9,3,3);[12,34,2;54,21,3;4,23,67]};
>>size(B)
ans=
41
>>B{1,1}=1;B{1,2}='Brenden';;B=reshape(1:
9,3,3);B={12,34,2;54,21,3;4,23,67};
>>size(B)
ans=
33
>>B{1,1}=1;B{1,2}='Brenden';;B{2,1}=reshape(1:
9,3,3);B{2,2}={12,34,2;54,21,3;4,23,67};
>>size(B)
ans=
33
>>
>>B{1,1}=1;
>>B{1,2}='Brenden';
>>B{2,1}=reshape(1:
9,3,3);
>>B{2,2}={12,34,2;54,21,3;4,23,67};
>>size(B)
ans=
33
>>ndims(B)
ans=
2
>>B
(2)
ans=
[3x3double]
>>B(4)
ans=
'Brenden'
>>B(3)=[];
>>B{3}=[];
>>B
B=
[1][3x3double][]{3x3cell}[23][2][3][67]
>>
第四章
第一题
x=input('enterx:
');
m1=fix(x/1000);
m2=fix((x-m1*1000)/100);
m3=fix((x-m1*1000-m2*100)/10);
m4=rem(x,10);
m1=rem((m1+7),10);
m2=rem((m2+7),10);
m3=rem((m3+7),10);
m4=rem((m4+7),10);
m=m3*1000+m4*100+m1*10+m2
disp(m)
第二题
a=input('请输入a:
');
b=input('请输入b:
');
c=input('请输入c:
');
x=input('请输入x:
');
switchfix(x/0.5)
case{1,2}
y=a*x^2+b*x+c;
case{3,4,5,6}
y=a*sin(b)+x;
case{7,8,9,10}
y=log(abs(b+c/x));
end
disp(y)
a=input('请输入a:
');
b=input('请输入b:
');
c=input('请输入c:
');
x=input('请输入x:
');
ifx>=0.5&x<1.5
y=a*x^2+b*x+c;
end
ifx>=1.5&x<3.5
y=a*sin(b)+x;
end
ifx>=3.5&x<5.5
y=log(abs(b+c/x));
end
y
第三题
a=fix(rand(1,20)*100);%产生20个随机数,因为产生的随机数是与小数形式产生的,乘于100后就是带有两个小数的两位数,在求整,就达到要求了
sum=0;
h=1;
fori=1:
20
sum=sum+a(i);%求20个数的和
end
b=sum/20;%求平均值
%一下是求出小于平均值的奇数
fori=1:
20
if(a(i)
c(h)=a(i);
h=h+1;
end
end
c
第四题
fori=1:
20
A(i)=input('请输入20个数:
');
end
Amin=A
(1);
Amax=A
(1);
fori=1:
19
ifA(i+1)>Amax
Amax=A(i+1);
end
ifA(i+1)Amin=A(i+1);
end
end
Amax=max(A)
Amin=min(A)
第五题
sum=1;
fori=1:
63
sum=sum+2^i;
end
s=sum;
s
第六题
sum=0;
n=input('请输入n:
');
fori=1:
n
sum=sum+(-1)^(i+1)/i;
end
sum
请输入n:
100
sum=
0.6882
请输入n:
1000
sum=
0.6926
请输入n:
10000
sum=
0.6931
sum=0;
n=input('请输入n:
');
fori=1:
n
sum=sum+((-1)^(i+1))/(2*i-1);
end
sum
请输入n:
100
sum=
0.7829
请输入n:
1000
sum=
0.7851
请输入n:
10000
sum=
0.7854
sum=0;
n=input('请输入n:
');
fori=1:
n
sum=sum+1/(4^i);
end
sum
请输入n:
100
sum=
0.3333
请输入n:
1000
sum=
0.33333333333333
请输入n:
10000
sum=
0.33333333333333
prod=1;
n=input('请输入n:
');
fori=1:
n
prod=prod*(((2*n)^2)/((2*n-1)*(2*n+1)));
end
prod
请输入n:
100
prod=
1.00250315893453
请输入n:
1000
prod=
1.00025003128379
请输入n:
10000
prod=
1.00002500031232
第七题
f
(1)=1;
f
(2)=1;
n=input('请输入n:
');
f
(1)
f
(2)
fori=3:
n
f(i)=f(i-1)+f(i-2);
f(i)
end
第八题
函数文件:
function[a,b]=test(c,d)
a=c*d;
b=c.*d;
a
b
运行结果:
c=[12;35];
>>d=[25;87];
>>[a,b]=test(c,d);
a=
1819
4650
b=
210
2435
第九题
函数文件:
functionsum=test(m,n)
sum=0;
fori=1:
n
sum=sum+i^m;
end
运行结果:
sum=test(1,100)+test(2,50)+test(0.5,10)
sum=
4.7997e+004
第十题
s=0;
a=[12,13,14;15,16,17;18,19,20;21,22,23];
fork=a
forj=1:
4
ifrem(k(j),2)~=0
s=s+k(j);
end
end
end
s
运行结果:
s=
108
命令文件exe.m:
globalx
x=1:
2:
5;y=2:
2:
6;
ex=sub(y);
x
y
函数文件sub.m:
functionfun=sub(z)
globalx
z=3*x;
fun=x+z;
运行结果:
exe
x=
135
y=
246