MATLAB程序设计与应用(第二版)
- 格式:doc
- 大小:4.34 MB
- 文档页数:392
matlab程序设计与应用第二版习题答案Matlab程序设计与应用第二版习题答案Matlab是一种强大的数学软件,广泛应用于科学计算、数据分析和工程设计等领域。
《Matlab程序设计与应用》是一本经典的教材,对于学习和掌握Matlab编程语言具有重要的意义。
本文将为大家提供《Matlab程序设计与应用第二版》中部分习题的答案,帮助读者更好地理解和应用Matlab。
第一章:Matlab基础1.1 基本操作1. a = 3; b = 4; c = sqrt(a^2 + b^2); disp(c);2. x = linspace(-pi, pi, 100); y = sin(x); plot(x, y);3. A = [1 2 3; 4 5 6; 7 8 9]; B = [9 8 7; 6 5 4; 3 2 1]; C = A + B; disp(C);1.2 控制结构1. for i = 1:10disp(i);end2. n = 0; sum = 0; while sum < 100n = n + 1;sum = sum + n;enddisp(n);3. x = 5; if x > 0disp('x is positive');elseif x < 0disp('x is negative');elsedisp('x is zero');end第二章:向量和矩阵运算2.1 向量运算1. A = [1 2 3]; B = [4 5 6]; C = A .* B; disp(C);2. A = [1 2 3]; B = [4 5 6]; C = A ./ B; disp(C);3. A = [1 2 3]; B = [4 5 6]; C = dot(A, B); disp(C);2.2 矩阵运算1. A = [1 2 3; 4 5 6]; B = [7 8; 9 10; 11 12]; C = A * B; disp(C);2. A = [1 2 3; 4 5 6]; B = [7 8; 9 10; 11 12]; C = B * A; disp(C);3. A = [1 2 3; 4 5 6]; B = [7 8; 9 10; 11 12]; C = A .* B; disp(C); 第三章:函数和脚本文件3.1 函数1. function y = myfunc(x)y = x^2 + 3*x + 2;end2. function [y1, y2] = myfunc(x1, x2)y1 = x1^2 + 3*x1 + 2;y2 = x2^2 + 3*x2 + 2;end3. function [y1, y2] = myfunc(x)y1 = x^2 + 3*x + 2;y2 = sin(x);end3.2 脚本文件1. x = linspace(0, 2*pi, 100); y = sin(x); plot(x, y);2. x = linspace(-10, 10, 100); y = x.^2 + 3*x + 2; plot(x, y);3. x = linspace(0, 2*pi, 100); y1 = sin(x); y2 = cos(x); plot(x, y1, x, y2);通过以上习题的答案,读者可以对Matlab程序设计的基本语法和常用函数有一个初步的了解。
第二章3.设矩阵A为A=[24 23 9 21 6;65 74 24 11 21;34 5 98 75 21;8 42 42 53 121;43 21 45 64 21];(1)B=A(2:5,1:2:5)B =65 24 2134 98 218 42 12143 45 21(2)A(7)=[]A =24 65 34 8 43 23 5 42 21 9 24 98 42 45 21 11 75 53 64 6 21 21 121 21(3)A+30(4)size(A);ndims(A)(5)题目有误(6)reshape(x,3,4)(7)abs(x)(8)char(x)4. L1 =0 0 0 0 1 0 0 0 0L2 =1 1 1 1 1 0 0 0 0L3 =0 0 0 1 1 1 0 0 0L4 =4 5 65.(1)B=A(1:3,:)C=A(:,1:2)D=A(2:4,3:4)E=B*CB =23.0000 10.0000 -0.7780 041.0000 -45.0000 65.0000 5.000032.0000 5.0000 0 32.0000C =23.0000 10.000041.0000 -45.000032.0000 5.00006.0000 -9.5400D =65.0000 5.00000 32.000054.0000 3.1400E =1.0e+003 *0.9141 -0.22391.20802.71231.1330 -0.2103(2)E<Dans =0 10 00 1E&Dans =1 10 11 1E|Dans =1 11 11 1~D|~Eans =0 01 00 0find(A>=10&A<25)ans =156.all(A)ans =any(A)ans =1isnan(A)ans =0 1 0 0 0 0 0isinf(A)ans =0 0 1 1 0 0 0isfinite(A)ans =1 0 0 0 1 1 17.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.(1)size(B)ans =2 2ndims(B)ans =2(2)B(2)ans =[3x3 doubleB(4)ans ={3x3 cell}(3)B(3)=[]B =[1] [3x3 double] {3x3 cell}B{3}=[]B =[1] [3x3 double] []第三章1.(1)A=eye(3)(2) A=100+100*rand(5,6)(3)A=1+sqrt(0.2)*randn(10,50)(4)B=ones(size(A))(5)A+30*eye(size(A))(6)B=diag(diag(A))2.B=rot90(A)C=rot90(A,-1)3.B=inv(A) ;A的逆矩阵C=det(A) ;A的行列式的值D=A*BE=B*AD=E 因此A与A-1是互逆的。
实验一:T1:%%第一小题z1=2*sin(85*pi/180)/(1+exp(2))%%第二小题x=[2,1+2i;,5];z2=1/2*log(x+sqrt(1+x.^2));z2%%第三小题a=::;z3=1/2*(exp*a)-exp*a)).*sin(a++log(+a )/2)%%第四题t=0::z4=(t>=0&t<1).*(t.^2)+(t>=1&t<2).*(t. ^2-1)+(t>=2&t<3).*(t.^2-2*t+1)T2:A=[12,34,-4;34,7,87;3,65,7]B=[1,3,-1;2,0,3;3,-2,7]disp ('A+6*B=');disp(A+6*B);disp('A-B+I=');disp(A-B+eye(3));disp('A*B=');disp(A*B);disp('A.*B=');disp(A.*B);disp('A^3=');disp(A^3);disp('A.^3=');disp(A.^3);disp('A/B=');disp(A/B);disp('B\A=');disp(B\A);disp('[A,B]=');disp([A,B]);disp('[A([1,3],:);B^2]=');disp([A([1,3],:);B^2]);T3:z=1:25;A=reshape(z,5,5)';B=[3,0,16;17,-6,9;0,23,-4;9,7,0;4,13,11];C=A*BD=C(3:5,2:3)T4-1:a=100:999;b=find(rem(a,21)==0);c=length(b)T4-2:a=input('请输入一个字符串:','s');b=find(a>='A'&a<='Z');a(b)=[];disp(a);实验二:T1:E=eye(3),R=rand(3,2),O=zeros(2,3),S=d iag([1,2]);A=[E,R;O,S]disp('A^2=');disp(A^2);disp('[E,R+RS;O,S^2]');B=[E,R+R*S;O,S^2]T2:H=hilb(5)P=pascal(5)Hh=det(H)Hp=det(P)Th=cond(H)Tp=cond(P)a=abs(Th-1);b=abs(Tp-1);if a>bdisp('帕萨卡矩阵P性能更好'); elseif a<bdisp('希尔伯特矩阵H性能更好'); elsedisp('两个矩阵性能相同');endT3:a=1:25;A=reshape(a,5,5)disp('行列式的值:');disp(det(A));disp('矩阵的秩:');disp(rank(A));disp('矩阵的迹:');disp(trace(A));disp('矩阵的范数:');disp(norm(A));T4:A=[-29,6,18;20,5,12;-8,8,5][V,D]=eig(A)T5:A=[1/2,1/3,1/4;1/3,1/4,1/5;1/4,1/5,1/ 6]B=[,,]'X1=A\BB(3)=X2=A\Bdisp('系数矩阵A的条件数:');disp(cond(A));T6:a=1:25;A=reshape(a,5,5)disp('B1=sqrtm(A)');B1=sqrtm(A)disp('B2=sqrt(A)');B2=sqrt(A)disp('B1*B1');B1*B1disp('B2.*B2');B2.*B2实验三:T1:x=:2:for i=1:length(x);if (x(i)<0)&(x(i)~=-3)y(i)=x(i)^2+x(i)-6;elseif(x(i)>=0)&(x(i)<5)&(x(i)~=2)&(x(i)~=3 );y(i)=x(i)^2-5*x(i)+6;elsey(i)=x(i)^2-x(i)-1;endendyT2-if:s=input('please enter the score:');while (s<0||s>100)disp('the score is not reasonable'); s=input('please enter the score:'); endif (s>=90&s<=100);disp('A');elseif(s>=80&s<90);disp('B');elseif(s>=70&s<80);disp('C');elseif(s>=60&s<70);disp('D');elsedisp('E');endT2-switch:s=input('please enter the score:'); while (s<0||s>100)disp('the score is not reasonable'); s=input('please enter the score:'); endswitch fix(s/10)case{9,10}disp('A');case{8}disp('B');case{7}disp('C');case{6}disp('D');case{0,1,2,3,4,5}disp('E');endT3:t=input('请输入工时time=');if t>120w=120*84+(t-120)**84;elseif t<60w=t*84-700;elsew=84*t;enddisp('应发工资为:');disp(w);T4:a=10+floor(rand(1)*89)b=10+floor(rand(1)*89)s=input('请输入+或-或*或/','s');while(s~='+'&&s~='-'&&s~='*'&&s~='/') disp('输入的符号错误,请重新输入'); s=input('请输入+或-或*或/','s'); endswitch scase{'+'}c=a+b;case{'-'}c=a-b;case{'*'}c=a*b;case{'/'}c=a/b;endcT5:A=rand(5,6)n=input('请输入n:');while (n<1)disp('输入的n有误,请重新输入'); n=input('请输入n:');endif n>5B=A(5,:)elseB=A(n,:)End实验四:T1:n=input('请输入n:');m=0;for i=1:n;m=m+1/i^2;endpii=sqrt(6*m)T1-2:n=input('请输入n:');m=1./(1:n).^2;s=sum(m);pii=sqrt(6*s)T2:n=1000;y=0;for i=1:n;y=y+1/(2*i-1);if y>=3disp('最大n值为:');i-1disp('对应的y值为:');y-1/(2*i-1)break;endendT3:format longa=input('请输入a:');b=input('请输入b:');x(1)=a/+b);i=1;x(2)=a/(x(i)+b);while (abs(x(i+1)-x(i))>&i<500)i=i+1;x(i+1)=a/(x(i)+b);endr1=(-b+sqrt(b^2+4*a))/2;r2=(-b-sqrt(b^2+4*a))/2;disp(['x',num2str(i+1),'=',num2str(x( i+1),8)]);disp(['x',num2str(i),'=',num2str(x(i) ,8)]);disp(['r1=',num2str(r1,8),',r2=',num2 str(r2,8)]);format shortT4:f(1)=1;f(2)=0;f(3)=1;i=4;while(i<=100)f(i)=f(i-1)-2*f(i-2)+f(i-3);i=i+1;endfmax=max(f)fmin=min(f)fsum=sum(f)fp=length(find(f>0))fn=length(find(f<0))f0=length(find(f==0))T5:j=0;s=0;for i=3:50m=i*(i-1)-1;if isprime(m)==1ms=s+m;j=j+1;endenddisp(['亲密数的对数:',num2str(j)]); disp(['所有亲密素数之和:',num2str(s)]);实验五:fn1:function f=fn1(n)f=n+10*log(n.^2+5);fn2:function f=fn2(n)f=0;for i=1:nf=f+i*(i+1);endfx:function f=fx(x)f=1./((x-2).^2++1./((x-3).^4+;T1:x=input('请输入一个复数:');fe=exp(x)flg=log(x)fsin=sin(x)fcos=cos(x)T2:m1=input('请输入m1:');m2=input('请输入m2:');t=input('请输入theta:');A=[m1*cos(t),-m1,-sin(t),0;m1*sin(t), 0,...cos(t),0;0,m2,-sin(t),0;0,0,-cos(t),1 ]B=[0,m1*,0,m2*]'disp('[a1,a2,N1,N2]=');disp([A\B]');T3:j=1;n=1;k=1;for i=10:99 % 挑选出10~99中所有的素数if isprime(i)==1m(j)=i;j=j+1;endendfor t=1:length(m);s(n)=10*rem(m(t),10)+fix(m(t)/10); %挑选出的素数进行位置交换if isprime(s(n))==1 %再挑选出交换绝对素数r(k)=m(t);k=k+1;endn=n+1;enddisp(['所有两位绝对素数:',num2str(r)])T5:y1=fn1(40)/(fn1(30)+fn1(20)) %函数调用y2=fn2(40)/(fn2(30)+fn2(20))实验六:T1:x=linspace(0,2*pi,101);y=+3*sin(x)./(1+x.^2)).*cos(x);plot(x,y);T2:x=linspace(0,2*pi,100);y1=x.^2;y2=cos(2*x);y3=y1.*y2;subplot(2,2,1);plot(x,y1,'r:',x,y2,'y-',x,y3,'b-.'); subplot(2,2,2);plot(x,y1,'r:');subplot(2,2,3);plot(x,y2,'y-');subplot(2,2,4);plot(x,y3,'b-.');T2-3:x=linspace(0,2*pi,10);y1=x.^2;y2=cos(2*x);y3=y1.*y2;subplot(3,4,1);bar(x,y1,'r');axis([0,7,0,40]); subplot(3,4,2);stairs(x,y1,'y');axis([0,7,0,40]); subplot(3,4,3);stem(x,y1,'b');axis([0,7,0,40]); subplot(3,4,4);fill(x,y1,'g');axis([0,7,0,40]); subplot(3,4,5);bar(x,y2,'r');axis([-1,7,-1,1]); subplot(3,4,6);stairs(x,y2,'y');axis([-1,7,-1,1]); subplot(3,4,7);stem(x,y2,'b');axis([-1,7,-1,1]); subplot(3,4,8);fill(x,y2,'g');axis([-1,7,-1,1]); subplot(3,4,9);bar(x,y3,'r');axis([0,7,-30,50]); subplot(3,4,10);stairs(x,y3,'y');axis([0,7,-30,50]); subplot(3,4,11);stem(x,y3,'b');axis([0,7,-30,50]); subplot(3,4,12);fill(x,y3,'g');axis([0,7,-30,50]);T3:x=linspace(-5,5,100);y=[];for x0=x;if x0<=0;y=[y,(x0+sqrt(pi))/exp(2)]; elsey=[y,1/2*log(x0+sqrt(1+x0^2))];endendsubplot(1,2,1);plot(x,y);for i=1:length(x)if x(i)<=0y(i)=(x(i)+sqrt(pi))/exp(2); elsey(i)=1/2*log(x(i)+sqrt(1+x(i)^2)); endendsubplot(1,2,2);plot(x,y);T4:a=input('请输入a:');b=input('请输入b:');n=input('请输入n:');theta=0::2*pi;y=a.*sin(b+n.*theta);polar(theta,y);T5:x=linspace(-5,5,21);y=linspace(0,10,31);[x,y]=meshgrid(x,y);z=cos(x).*cos(y).*exp(-sqrt(x.^2+y.^2 )/4);subplot(1,2,1);surf(x,y,z);subplot(1,2,2);contour3(x,y,z);T6:s=0:pi/2;t=0:3*pi/2;[s,t]=meshgrid(s,t);x=cos(s).*cos(t);y=cos(s).*sin(t);z=sin(s);surf(x,y,z);shading interp;实验八:T1:A=rand(1,30000);disp('均值为:');mean(A)disp('标准方差为:');std(A)disp('最大元素为:');max(A)disp('最小元素为:');min(A)k=find(A>;b=length(k);disp('大于的随机数个数占总数的百分比:');sprintf('%f%%', b/300)T2:P=45+50*rand(100,5)disp('最高分及序号:');[Y,U]=max(P,[],1)disp('最低分及序号:');[Y1,U1]=min(P,[],1)disp('每门课平均分:');mean(P,1)disp('每门课的标准方差:');std(P,0,1)s=sum(P,2);disp('总分最高分:');[Y2,U2]=max(s,[],1)disp('总分最低分:');[Y3,U3]=min(s,[],1)[zcj,xsxh]=sort(s,1,'descend') %desc end降序T3:h=6:2:18;t1=[,,,,,,];t2=[,,,,,,];t=:2:;T1=interp1(h,t1,t,'spline')T2=interp1(h,t2,t,'spline')T4:x=1:10:101;y=log10(x);p=polyfit(x,y,5)x1=1::101;y1=log10(x1);y2=polyval(p,x1);plot(x1,y1,'r-',x1,y2,'b-.');T5:P1=[1,2,4,0,5];P2=[0,0,0,1,2];P3=[0,0,1,2,3];P4=conv(P2,P3);sp1=length(P1);sp2=length(P4);P=[zeros(1,sp2-sp1),P1]+P4x=roots(P)A=[-1,,;,2,;0,5,];Ax=polyval(P,A)AA=polyvalm(P,A)实验九:T1:f=inline('det([x x^2 x^3;1 2*x 3*x^2;0 2 6*x])');i=1;x=1;while x<=g(i)=f(x);i=i+1;x=x+;enddx=diff(g)/;dx(1)dx(101)dx(length(g)-1)T2:f1=inline('sqrt(cos(t.^2)+4*sin(2*t). ^2+1)')f2=inline('log(1+x)./(1+x.^2)')I1=quad(f1,0,2*pi)I2=quad(f2,0,2*pi)T3:A=[6,5,-2,5;9,-1,4,-1;3,4,2,-2;3,-9,0 ,2];B=[-4,13,1,11]';x1=A\B[L,U]=lu(A);x2=U\(L\B)[Q,R]=qr(A);x3=R\(Q\B)fun:function F=fun(X);x=X(1);y=X(2);z=X(3);F(1)=sin(x)+y^2+log(z)-7;F(2)=3*x+2^y-z^3+1;F(3)=x+y+z-5;T5:f=inline('3*x+sin(x)-exp(x)');fzero(f,X=fsolve('fun',[1 1 1]',optimset('Display','off'))实验十:T1:x=sym('6');y=sym('5');z=(x+1)/(sqrt(3+x)-sqrt(y))T2:syms x y;t=sym('5135');factor(x^4-y^4)factor(t)T3:syms beta1 beta2 x;simplify(sin(beta1)*cos(beta2)-cos(be ta1)*sin(beta2))simplify((4*x^2+8*x+3)/(2*x+1))T4:syms a b c d e f g h k;p1=[0,1,0;1,0,0;0,0,1];p2=[1,0,0;0,1,0;1,0,1];A=[a,b,c;d,e,f;g,h,k];B=p1*p2*AB1=inv(B)B1*B;tril(B)det(B)T5:syms x t a yf1=(x*(exp(sin(x))+1)-2*(exp(tan(x))-1))/sin(x)^3;limit(f1,x,0) %(1)f2=(sqrt(pi)-sqrt(acos(x)))/sqrt(x+1) ;limit(f2,x,-1,'right') %(2)f3=(1-cos(2*x))/x;diff(f3,x,1) %(3)diff(f3,x,2)A=[a^x,t^3;t*cos(x),log(x)];diff(A,x,1) &(4)diff(A,t,2)diff(diff(A,x,1),t,1)f5=(x^2-2*x)*exp(-x^2-y^2-x*y);yx=-diff(f5,x,1)/diff(f5,y,1) %(5) fxy=diff(diff(f5,x,1),y,1)x=sym('0');y=sym('1');eval(fxy)T6:x=sym('x');f1=1/(1+x^4+x^8);int(f1,x)f2=1/(asin(x))^2/sqrt(1-x^2);int(f2,x)f3=(x^2+1)/(x^4+1);int(f3,x,0,inf)f4=exp(x)*(1+exp(x))^2;int(f4,x,0,log(2))实验十一:T1:syms n x ;S1=symsum(1/(2*n-1),n,1,10)S2=symsum(n^2*x^(n-1),n,1,inf)S3=symsum(n^2/5^n,n,1,inf)T2:x=sym('x');f=log(x);taylor(f,x,6,1)T3:x1=solve('log(1+x)-5/(1+sin(x))=2')x2=solve('x^2+9*sqrt(x+1)-1=0')x3=solve('3*x*exp(x)+5*sin(x)=0')[x4,y4]=solve('sqrt(x^2+y^2)-100=0',' 3*x+5*y-8=0')T4:dsolve('D2y+4*Dy+29*y=0','y(0)=0','Dy (0)=15','x')T5:[x,y,z]=dsolve('Dx=2*x-3*y+3*z','Dy=4 *x-5*y+3*z','Dz=4*x-4*y+2*z','t')。
Matlab课后实验题答案实验一 MATLAB运算基础1. 先求下列表达式的值,然后显示MATLAB工作空间的使用情况并保存全部变量。
(1)0 122sin851ze =+(2)21ln( 2z x=+,其中2120.455i x+⎡⎤=⎢⎥-⎣⎦(3)0.30.330.3sin(0.3)ln, 3.0, 2.9,,2.9,3.0 22a ae e az a a--+=++=--(4)2242011122123t tz t tt t t⎧≤<⎪=-≤<⎨⎪-+≤<⎩,其中t=0:0.5:2.52. 已知:1234413134787,2033657327A B --⎡⎤⎡⎤⎢⎥⎢⎥==⎢⎥⎢⎥⎢⎥⎢⎥-⎣⎦⎣⎦求下列表达式的值:(1) A+6*B 和A-B+I (其中I 为单位矩阵) (2) A*B 和A.*B (3) A^3和A.^3 (4) A/B 及B\A(5) [A,B]和[A([1,3],:);B^2] 解:3. 设有矩阵A 和B123453166789101769,111213141502341617181920970212223242541311A B ⎡⎤⎡⎤⎢⎥⎢⎥-⎢⎥⎢⎥⎢⎥⎢⎥==-⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦(1) 求它们的乘积C 。
(2) 将矩阵C 的右下角3×2子矩阵赋给D 。
(3) 查看MATLAB 工作空间的使用情况。
4. 完成下列操作:(1) 求[100,999]之间能被21整除的数的个数。
(2) 建立一个字符串向量,删除其中的大写字母。
解:(1) 结果:(2). 建立一个字符串向量 例如:ch='ABC123d4e56Fg9';则要求结果是:实验二 MATLAB 矩阵分析与处理1. 设有分块矩阵33322322E R A O S ⨯⨯⨯⨯⎡⎤=⎢⎥⎣⎦,其中E 、R 、O 、S 分别为单位矩阵、随机矩阵、零矩阵和对角阵,试通过数值计算验证22E R RS A OS +⎡⎤=⎢⎥⎣⎦。
《MATLAB程序设计与应用(刘卫国)》(第二版)实验一MATLAB运算基础1.(1) z1=2*sin(pi*85/180)/(1+exp(2))(2)x=[2,1+2i;-0.45,5];z2=log(x+sqrt(1+x.^2))/2(3)a=-3.0:0.1:3.0;z3=0.5*(exp(0.3*a)-exp(-0.3*a)).*sin(a+0.3)+log((0.3+a)/2)(4)t=0:0.5:2.5;z4=(t>=0&t<1).*t.^2+(t>=1&t<2).*(t.^2-1)+(t>=2&t<3).*(t.^2-2*t+1)2. A=[12,34,-4;34,7,87;3,65,7];B=[1,3,-1;2,0,3;3,-2,7];(1)a=A+6*Bb=A-B+eye(size(A)) %I=eye(size(A))(2)c=A*Bd=A.*B(3)e=A^3f=A.^3(4)g=A/Bh=B\A(5)m=[A,B]n=[A([1,3],:);B^2]3. A=[1,2,3,4,5;6,7,8,9,10;11,12,13,14,15;16,17,18,19,20;21,22,23,24,25];B=[3,0,16;17,-6,9;0,23,-4;9,7,0;4,13,11];(1)C=A*B(2)D=C(3:end,2:end)4.(1) a=100:999;b=rem(a,21)==0;c=find(b);d=length(c)(2)ch='Just as Bianhaiman said,Xiehong is ...';e=find(ch>='A'&ch<='Z');ch(e)=[]实验二 MATLAB矩阵分析与处理1.E=eye(3);R=rand(3,2);O=zeros(2,3);S=diag([1,2]);A=[E,R+R*S;O,S^2];a=A^22. H=hilb(5);P=pascal(5);Hh=det(H)Hp=det(P)Th=cond(H)Tp=cond(P)3. A=rand(5,5);a=det(A) %行列式的值b=trace(A) %行列式的迹c=rank(A) %行列式的秩d=norm(A) %行列式的范数4. A=[-29,6,18;20,5,12;-8,8,5];[V,D]=eig(A)5. A=[1/2,1/3,1/4;1/3,1/4,1/5;1/4,1/5,1/6];b=[0.95,0.67,0.52]';(1)x=inv(A)*b(2)b1=[0.95,0.67,0.53]';x=inv(A)*b1(3)c=cond(A)6. A=rand(3,3);B=sqrtm(A)C=sqrt(A)实验三选择结构程序设计1. x=input('请输入x的值:');if x<0&x~=-3y=x*x+x-6;elseif x>=0&x<5&x~=2&x~=3y=x*x-5*x+6;elsey=x*x-x-1;endy2.(if语句)score=input('请输入成绩:');if score>=0&score<60disp('E');elseif score>=60&score<70disp('D');elseif score>=70&score<80disp('C');elseif score>=80&score<90disp('B');elseif score>=90&score<=100disp('A');elsedisp('您输入的成绩有误,请重新输入!');end(switch语句)score=input('请输入成绩:');switch fix(score/10)case num2cell(0:5)disp('E');case {6}disp('D');case {7}disp('C');case {8}disp('B');case {9}disp('A');otherwisedisp('您输入的成绩有误,请重新输入!'); end3. a=input('请输入工号:','s');b=input('请输入该员工的工时数:');if b>120y=120*84+(b-120)*(1+15/100)*84;elseif b<60y=b*84-700;elsey=b*84;endy4.a=10+fix(89*rand());b=10+fix(89*rand());c=input('请输入一个运算符:','s'); if c=='+'disp(a+b);elseif c=='-'disp(a-b);elseif c=='*'disp(a*b);elsedisp(a/b);end5. A=rand(5,6);n=1:5;n=input('请输入n的值:');tryB=A(n,:);catchB=A(end,:);endBlasterr实验四循环结构程序设计1.(循环结构)n=input('请输入n的值:');y=0;for i=1:ny=y+1/i/i;pi=sqrt(6*y);endpi(向量运算)n=input('请输入n的值:');i=1:n;y=1./i.^2;f=sum(y);pi=sqrt(f*6)2. y=0;n=0;while 1n=n+1;y=y+1/(2*n-1);if y>=3breakendendny=y-1/(2*n-1)3. a=input('输入a的值:');b=input('输入b的值:');x0=1.0;n=1;x1=a/(b+x0);while abs(x1-x0)>=10^(-5)|n<=500 x1=a/(b+x0);x0=x1;n=n+1;endx14. f(1)=1;f(2)=0;f(3)=1;for n=4:100f(n)=f(n-1)-2*f(n-2)+f(n-3); enda=max(f) %最大值b=min(f) %最小值c=sum(f) %各数之和d=length(find(f>0)) %正数的个数e=length(find(f==0)) %零的个数f=length(find(f<0)) %负数的个数5. n=0;s=0;for k=2:49sn=k*(k+1)-1;m=fix(sqrt(sn));for i=2:mif rem(sn,i)==0breakelseendendif i==mn=n+1;s=s+sn;endendns实验五函数文件1.(函数文件)function [e,l,s,c]=f1(x)e=exp(x);l=log10(x);s=sin(x);c=cos(x);(命令文件)x=input('请输入一个复数:'); [e,l,s,c]=f1(x);elsc2.(函数文件)function [x]=f2(A,B)C=B';x=C*inv(A);(命令文件)m1=input('Enter m1:');m2=input('Enter m2:');theta=input('Enter theta:'); g=9.8;A=[m1*cos(theta),-m1,-sin(theta),0;m1*sin(theta),0,cos(theta),0;0,m2,-sin(theta),0;0,0,-cos(theta),1];B=[0,m1*g,0,m2*g]';[x]=f2(A,B);x3.(函数文件)function f=f3(x)f=1;for i=2:sqrt(x)if rem(x,i)==0f=0;breakendend(命令文件)for i=10:99j=10*rem(i,10)+fix(i/10);if f3(i)&f3(j)disp(i);endend4.(函数文件)function f=f4(x)f=1./((x-2).^2+0.1)+1./((x-3).^4+0.01);(命令文件)x=[1,2,3;4,5,6];y=f4(x)5.(1)(函数文件)function f=f5(n)f=n+10*log(n^2+5);(命令文件)y=f5(40)/(f5(30)+f5(20))(2)(函数文件)function f=f6(i)g=0;for i=1:nf=g+i.*(i+1);end(命令文件)y=f6(40)/(f6(30)+f6(20))实验六高层绘图操作1. x=linspace(0,2*pi,101);y=(0.5+3*sin(x)./(1+x.*x));plot(x,y);title('实验六第一题');xlabel('X');ylabel('Y');text(3,0.6,'y=0.5+3sin(x)/(1+x^2)');2.(1)x=linspace(0,pi,100);y1=x.^2;y2=cos(2*x);y3=y1.*y2;plot(x,y1,'b',x,y2,'g',x,y3,'r'); title('同一坐标系下得三条曲线');text(2,4,'y1=x^2');text(2,-0,8,'y2=cos(2x)');text(2,-2.2,'y=x^2*cos(2x)');xlabel('X');ylabel('Y');(2)x=linspace(0,pi,100); y1=x.^2;y2=cos(2*x);y3=y1.*y2;subplot(1,3,1);plot(x,y1);title('y1=x^2');xlabel('X');ylabel('Y'); subplot(1,3,2);plot(x,y2);title('y2=cos(x)');xlabel('X');ylabel('Y') subplot(1,3,3);plot(x,y3);title('y3=x^2*cos(x)'); xlabel('X');ylabel('Y');(3)x=linspace(0,2*pi,20); y1=x.^2;y2=cos(2*x);y3=y1.*y2;subplot(4,3,1);bar(x,y1);subplot(4,3,2);bar(x,y2);subplot(4,3,3);bar(x,y3);subplot(4,3,4);stairs(x,y1);subplot(4,3,5);stairs(x,y2);subplot(4,3,6);stairs(x,y3);subplot(4,3,7);stem(x,y1);subplot(4,3,8);stem(x,y2);subplot(4,3,9);stem(x,y3);subplot(4,3,10);fill(x,y1,'b');subplot(4,3,11);fill(x,y2,'r');subplot(4,3,12);fill(x,y3,'g');3. x=linspace(-5,5,100);y=[];for x0=xif x0>=-5&x<=0y=[y,(x0+sqrt(pi))/exp(2)];elsey=[y,log(x0+sqrt(1+x0.^2))/2];endendplot(x,y);title('实验六第三题');xlabel('X');ylabel('Y');4. a=input('请输入a:');b=input('请输入b:');n=input('请输入n:');theta=0:0.01:2*pi;rho=a.*sin(b+n.*theta);polar(theta,rho,'r');title('极坐标曲线');(如:当输入a=3,b=4,n=6时,图形为:)5. x=linspace(-5,5,21);y=linspace(0,10,31);[x,y]=meshgrid(x,y);z=cos(x).*cos(y).*exp(-sqrt(x.*x+y.*y)/4); subplot(2,1,1);surf(x,y,z);title('曲面图');xlabel('X');ylabel('Y');zlabel('Z'); subplot(2,1,2);surfc(x,y,z);title('等高线图');xlabel('X');ylabel('Y');zlabel('Z');6.(方法一)s=0:pi/100:pi/2;t=0:pi/100:3*pi/2;[s,t]=meshgrid(s,t);x=cos(s).*cos(t);y=cos(s).*sin(t);z=sin(s);surf(x,y,z);shading interp;title('实验六第六题');xlabel('X');ylabel('Y');zlabel('Z');(方法二)ezsurf('cos(s)*cos(t)','cos(s)*sin(t)','sin(s)',[0,0.5*pi,0,1.5*pi]); shading interp;实验七低层绘图操作1. hf=figure('MenuBar','figure','NumberTitle','off','Color','r',...'Name','图形窗口示例',...'WindowButtonDownFcn','disp(''Left Button Pressed.'')');2. x=-1:0.1:1;y=x.^2.*exp(2*x);h=line('XData',x,'YData',y);text(0.6,0.36*exp(1.2),'\leftarrow y=x^2*exp(2*x)');set(h,'Color','r','LineStyle','--','LineWidth',2);grid on;title('函数y=x^2*exp(2*x)');3. x=0:0.00001:0.001;[x,t]=meshgrid(x);v=10*exp(-0.01*x).*sin(2000*pi*t-0.2*x+pi);axes('view',[-37.5,30]);hf=surface(x,t,v);grid on;xlabel('X');ylabel('Y');zlabel('Z');title('曲面v=10*exp(-0.01*x)*sin(2000*pi*t-0.2*x+pi)');set(hf,'EdgeColor','interp','FaceColor','r','LineStyle',':','LineWidth',2);4. x=linspace(0,2*pi,20);y1=sin(x);y2=cos(x);y3=sin(x)./(cos(x)+eps);y4=cos(x)./(sin(x)+eps);axes('Position',[0.15,0.1,0.2,0.4]);plot(x,y1);title('y1=sin(x)');axes('Position',[0.05,0.6,0.2,0.3]);plot(x,y2);title('y2=cos(x)');axes('Position',[0.45,0.6,0.3,0.3]);plot(x,y3);title('y3=tan(x)');axes('Position',[0.5,0.2,0.3,0.2]);plot(x,y4);title('y4=cot(x)');5. cylinder(3);light('Position',[1,2,4]); shading interp;lighting gouraud;material shiny实验八数据处理与多项式计算1.A=rand(1,30000);a=mean(A) %均值b=std(A,0,2) %标准方差c=max(A) %最大元素d=min(A) %最小元素n=0;for i=1:30000if A(i)>0.5n=n+1; %大于0.5的随机数的个数endendm=n/30000 %百分比2. P=45+fix(50*rand(100,5));[zgf,xh]=max(P) %每门课的最高分及相应的学号[zdf,xh]=min(P) %每门课的最低分及相应的学号pjf=mean(P) %每门课的平均分fc=std(P) %标准方差A=sum(P,2); %总分[zfzg,xh]=max(A) %总分最高分及学号[zfzd,xh]=min(A) %总分最低分及学号[zcj,xsxh]=sort(A,1,'descend')3. h=6:2:18;x=6.5:2:17.5;t1=[18.0 20.0 22.0 25.0 30.0 28.0 24.0];t2=[15.0 19.0 24.0 28.0 34.0 32.0 30.0];a=interp1(h,t1,x,'spline')b=interp1(h,t2,x,'spline')4. x=linspace(1,101,10);y=log10(x);p=polyfit(x,y,5);y1=polyval(p,x);plot(x,y,'r:o',x,y1,'-*')5. p1=[1,2,4,0,5];p2=[1,2];p3=[1,2,3];p4=conv(p2,p3);p41=[0,p4];p=p1+p41 %P(x)=P1(x)+P2(x)*P3(x) x=roots(p) %根A=[-1,1.2,-1.4;0.75,2,3.5;0,5,2.5];y1=polyval(p,A)y2=polyvalm(p,A)。
e an dAl l th i ng si nt he i rb ei n ga re go od fo r矩阵和对角阵,试通过数值计算验证。
22E R RS A OS +⎡⎤=⎢⎥⎣⎦解: M 文件如下;由ans,所以22E R RS A O S +⎡⎤=⎢⎥⎣⎦2. 产生5阶希尔伯特矩阵H 和5阶帕斯卡矩阵P ,且求其行列式的值Hh 和Hp 以及它们的条件数Th 和Tp ,判断哪个矩阵性能更好。
为什么?解:M 文件如下:an dAl l t h i ng si nt he i rb ei n ga re go od fo r因为它们的条件数Th>>Tp,所以pascal 矩阵性能更好。
3. 建立一个5×5矩阵,求它的行列式值、迹、秩和范数。
解: M 文件如下:4. 已知2961820512885A -⎡⎤⎢⎥=⎢⎥⎢⎥-⎣⎦求A 的特征值及特征向量,并分析其数学意义。
解:M 文件如图:b ei n ga re go od f数学意义:V 的3个列向量是A 的特征向量,D 的主对角线上3个是A 的特征值,特别的,V 的3个列向量分别是D 的3个特征值的特征向量。
5. 下面是一个线性方程组:111⎡⎤e an dAl l t h i ng si nt he i rb ei n ga re go od fo rs o 输出结果:由结果,X 和X2的值一样,这表示b 的微小变化对方程解也影响较小,而A 的条件数算得较小,所以数值稳定性较好,A 是较好的矩阵。
6. 建立A 矩阵,试比较sqrtm(A)和sqrt(A),分析它们的区别。
解:M 文件如下:分析结果知:sqrtm(A)是类似A 的数值平方根(这可由b1*b1=A 的结果看出),而sqrt(A)则是对A 中的每个元素开根号,两则区别就在于此。
e an dAl l t h i ng si nt he i rb ei n ga re 实验三 选择结构程序设计1. 求分段函数的值。
matlab程序设计教程第二版MATLAB程序设计教程第二版第一章:MATLAB概述MATLAB是一个高性能的数值计算和可视化软件,广泛应用于工程计算、数据分析、算法开发等领域。
它以其强大的数学函数库、易于使用的编程环境以及丰富的图形用户界面而闻名。
1.1 MATLAB的发展历程MATLAB最初由Cleve Moler于1970年代末开发,随着时间的发展,MATLAB不断更新,增加了更多的功能和工具箱。
1.2 MATLAB的特点- 交互式命令窗口:允许用户直接输入表达式并获取结果。
- 矩阵运算:MATLAB的核心是矩阵运算,它提供了丰富的矩阵操作函数。
- 图形用户界面:MATLAB提供了多种图形绘制工具,可以轻松地创建图表和动画。
- 编程语言:MATLAB具有自己的编程语言,支持函数、循环、条件语句等。
1.3 MATLAB的安装与配置详细说明如何下载、安装MATLAB,并进行基本的配置,以确保软件能够正常运行。
第二章:MATLAB基础2.1 MATLAB界面介绍介绍MATLAB的主界面,包括命令窗口、工作空间、命令历史、当前目录等。
2.2 基本命令与操作讲解MATLAB中的基本命令,如变量赋值、矩阵创建、基本运算等。
2.3 编程基础介绍MATLAB的编程结构,包括循环、条件语句、函数定义等。
第三章:矩阵与数组操作3.1 矩阵的创建与基本操作讲解如何创建矩阵、矩阵的基本运算,如加法、乘法、转置等。
3.2 特殊矩阵介绍MATLAB中的特殊矩阵,如单位矩阵、零矩阵、对角矩阵等。
3.3 矩阵的索引与切片详细说明如何对矩阵进行索引,以及如何进行矩阵的切片操作。
第四章:MATLAB编程进阶4.1 函数与脚本讲解如何编写自定义函数,以及如何使用脚本进行程序设计。
4.2 程序控制结构深入讲解MATLAB中的控制结构,包括循环、条件判断、错误处理等。
4.3 数据结构介绍MATLAB中的数据结构,如数组、结构体、单元数组等。
Matlab 课后实验题答案实验一 MATLAB 运算基础1. 先求下列表达式的值,然后显示MATLAB 工作空间的使用情况并保存全部变量。
(1) 0122sin851z e=+ (2) 221ln(1)2z x x =++,其中2120.455i x +⎡⎤=⎢⎥-⎣⎦ (3) 0.30.330.3sin(0.3)ln , 3.0, 2.9,,2.9,3.022a a e e az a a --+=++=--(4) 2242011122123t t z t t t t t ⎧≤<⎪=-≤<⎨⎪-+≤<⎩,其中t =0:0.5:2.5 解:M 文件:z1=2*sin(85*pi/180)/(1+exp(2))x=[2 1+2*i;-.45 5];z2=1/2*log(x+sqrt(1+x^2)) a=-3.0:0.1:3.0;z3=(exp(0.3.*a)-exp(-0.3.*a))./2.*sin(a+0.3)+log((0.3+a)./2) t=0:0.5:2.5;z4=(t>=0&t<1).*(t.^2)+(t>=1&t<2).*(t.^2-1)+(t>=2&t<3) .*(t.^2-2*t+1)2. 已知:1234413134787,2033657327A B --⎡⎤⎡⎤⎢⎥⎢⎥==⎢⎥⎢⎥⎢⎥⎢⎥-⎣⎦⎣⎦求下列表达式的值:(1) A+6*B 和A-B+I (其中I 为单位矩阵) (2) A*B 和A.*B (3) A^3和A.^3 (4) A/B 及B\A(5) [A,B]和[A([1,3],:);B^2] 解:M 文件:A=[12 34 -4;34 7 87;3 65 7];B=[1 3 -1;2 0 3;3 -2 7]; A+6.*BA-B+eye(3) A*B A.*B A^3 A.^3 A/B B\A [A,B][A([1,3],:);B^2]3. 设有矩阵A 和B123453166789101769,111213141502341617181920970212223242541311A B ⎡⎤⎡⎤⎢⎥⎢⎥-⎢⎥⎢⎥⎢⎥⎢⎥==-⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦(1) 求它们的乘积C 。
MATLAB程序设计与应用第二版教学设计前言MATLAB是一款独特的科学计算软件。
本教学设计为《MATLAB程序设计与应用第二版》课程设计,旨在帮助学生掌握MATLAB的基础知识和应用技能。
此教学设计根据课程宗旨,从以下四个方面展开:•简要介绍MATLAB及其主要应用领域;•给出针对本课程所需的MATLAB基础知识;•提供MATLAB应用实例;•考虑面对不同水平和背景的学生,增加了一些挑战性的作业和扩展现象。
课程目标•掌握MATLAB的基本操作方法;•熟练使用MATLAB的程序设计语言;•能够应用MATLAB解决问题。
课程简介1. 什么是MATLAB?MATLAB是一款专门设计用于科学计算、数据分析和可视化的软件套件。
MATLAB可以执行各种计算任务,例如数学建模、数据分析、图像处理等。
2. MATLAB主要应用领域MATLAB的应用非常广泛,以下是几个常见的应用领域:•工程;•生物医学;•自然科学;•经济;•金融;•环境科学。
3. 课程内容需要的MATLAB基础知识要学习MATLAB,需要对以下内容有一定的了解:•MATLAB的程序设计语言;•MATLAB的基础操作;•MATLAB中的向量和矩阵的使用;•MATLAB中的数据类型;•数据分析和可视化。
MATLAB应用实例本课程提供的MATLAB应用实例有:•数学模型的构建;•数据分析;•图像处理;•GUI开发。
扩展和作业在本课程中,我们还提供了以下的扩展和作业:•查找来自MATLAB的帮助文件并解决通信或计算问题的练习;•阅读MATLAB代码并快速理解,这将帮助学生更好地理解其他MATLAB代码;•使用MATLAB构建自己的模型或程序,并在课上展示源代码和操作。
学习建议为确保学生能够有足够的时间完成所有课程内容,我们建议每周学习时间为6-8小时。
教学方法教学方法是多种多样的。
这里介绍一些希望适用于此课程的方法:1. 通过理论和实践相结合的方式教学提供足够的理论知识,并在学生学习一些基本MATLAB命令之后,使用实践案例来解释这些知识是非常有用的。
阅阅读读时时::请请选选择择““视视图图||文文档档结结构构图图””,,弹弹出出文文档档中中的的标标题题链链接接。
数学软件MATLAB程序设计与应用第1章MATLAB系统环境1.1 MATLAB概貌1.2 MATLAB环境的准备1.3 MATLAB操作界面1.4 MATLAB帮助系统自上世纪80年代以来,出现了科学计算语言,亦称数学软件。
MATLABMathematicaMathcadMapleLINDOLINGO1.1 MATLAB概貌p3MATLAB 是MATrix LABoratory(矩阵实验室)的缩写。
1984年由Math Works 公司推出,现已成为国际公认的优秀的工程应用开发环境,是影响最大,流行最广的科学计算语言。
1.1.1 MATLAB的发展1. 从MATLAB 4.2c开始,每个版本增加了一个建造编号;2. 例如MATLAB7.6的建造编号是R2008a。
说明MATLAB7.6与MATLAB2008a是等同的;3. 对于建造编号,正规化以后,每年出两个版本。
一般来说。
a是测试版,b是正式版。
a是前半年出,b是后半年出。
教材采用MATLAB7.0(R14,2004)实验室采用MATLAB 7.8(R2009a,2009.3,汉化)1.1.2 MATLAB的主要功能p4◆数值计算和符号计算功能◆绘图功能◆语言体系◆MATLAB工具箱(1) 数值计算和符号计算功能MATLAB以矩阵作为数据操作的基本单位,还提供了十分丰富的数值计算函数。
MATLAB先后和著名的符号计算语言Maple与MuPAD(从MATLAB 2008b开始使用MuPAD)相结合,使得MATLAB具有符号计算功能。
(2) 绘图功能可以绘制二维和三维图形。
MATLAB提供了两个层次的绘图操作:●对图形句柄进行的低层绘图操作;●建立在低层绘图操作之上的高层绘图操作。
(3) 语言体系MATLAB具有程序结构控制、函数调用、数据结构、输入输出、面向对象等程序语言特征,而且简单易学、编程效率高。
MATLAB是解释性语言,不能脱离MATLAB环境而独立运行。
(4) MATLAB工具箱MATLAB包含两部分内容:基本部分和各种可选的工具箱。
MATLAB工具箱分为两大类:功能性工具箱和学科性工具箱。
基本部分构成MATLAB的核心内容,也是使用和构造工具箱的基础。
功能性工具箱主要用来扩充其符号计算功能、可视建模仿真功能及文字处理功能等。
学科性工具箱Control System Toolbox 控制系统工具箱Signal Processing Toolbox 信号处理工具箱Neural Network Toolbox 神经网络工具箱Optimization Toolbox 最优化工具箱Financial Toolbox 金融工具箱Statistics Toolbox 统计学工具箱开始→工具箱MATLAB具备很强的开放性除内部函数外,所有MATLAB基本文件和各工具箱文件都是可读、可改的源文件,用户可通过对源文件的修改或加入自己编写的文件去构成新的专用工具箱。
1.1.3 MATLAB 功能演示 p5例1.1 绘曲线图绘制函数y=2-|x |和y=sin x 的曲线。
例1.2 求方程的根求方程2x 532例1.3 解线性方程组2328234453923x y z x y z x y z +-=⎧⎪++=⎨⎪++=⎩法2:左除运算法3:符号计算例1.4 求积分1ln(1)x x dx+⎰法2:符号计算1.2 MATLAB环境的准备p71.2.1 MATLAB的安装安装MATLAB系统,需运行系统自带的安装程序setup.exe,可以按照安装提示依次操作。
1.2.2 MATLAB的启动与退出p8启动有3种常见方法:(1) 使用Windows“开始”菜单。
(2) 运行MATLAB(文件夹)系统启动程序matlab.exe。
(3) 利用(桌面)快捷方式。
退出也有3种常见方法:(1) 在主窗口File菜单中选择Exit MATLAB。
(2) 在命令窗口中键入Exit或Quit命令。
(3) 单击主窗口右上角的关闭按钮。
1.3 MATLAB操作界面p91.3.1 主窗口MATLAB主窗口是MATLAB的主要工作界面。
主窗口除了嵌入一些子窗口外,还主要包括菜单栏和工具栏。
•MATLAB的菜单栏包括6个菜单项:File 实现有关文件的操作Edit 用于命令窗口的编辑操作Debug 用于程序调试Desktop 用于设置MATLAB集成环境的显示方式(桌面)Window 用于关闭所有打开的编辑器窗口或选择活动窗口Help 用于提供帮助信息。
•MATLAB的工具栏提供了一些命令按钮和一个当前路径列表框。
这些命令按钮有对应的菜单命令,但比菜单命令使用起来更快捷、方便。
1.3.2 命令窗口(Command Window)命令窗口是MATLAB的主要交互窗口,用于输入命令并显示除图形以外的所有执行结果。
>> 为命令提示符表示MATLAB正在处于准备状态。
在命令提示符后键入命令并回车后,MATLAB就会解释执行所输入的命令,并在命令后面给出计该窗口既可以内嵌在工作界面内,也可以浮动到工作界面之外。
(右上角的按钮)一般来说,一个命令行输入一条命令,命令行以回车结束。
但一个命令行也可以输入若干条命令,各命令之间以逗号分隔,若前一命令后带有分号,则逗号可以省略。
例... 为续行符如果一个命令行很长,一个物理行之内写不下,可以在第一个物理行之后加上续行符并按下回车键,然后接着下一个物理行继续写命令的其他部分。
即把续行符下面的物理行看作该行的逻辑继续。
表1.1命令行编辑中常用的控制及其功能p101.3.3 工作空间窗口(Workspace) p10工作空间是MATLAB用于存储各种变量和结果的内存空间。
在该窗口中显示工作空间中所有的变量,可对变量进行观察、编辑、保存和删除。
1.3.4 当前目录窗口和搜索路径(Cuurent Directory) p11当前目录是指MATLAB运行文件时的工作目录,只有在当前目录或搜索路径下的文件、函数可以被运行或在当前目录窗口中可以显示或改变当前目录,还可以显示当前目录下的文件并提供搜索功能。
cd命令:将用户目录设置成当前目录。
例将用户目录e:\matlab7\work设置为当前目录。
当用户在MATLAB命令窗口输入一条命令后,MATLAB按照一定次序寻找相关的文件。
基本的搜索过程是:(1) 检查该命令是不是一个变量。
(2) 检查该命令是不是一个内部函数。
(3) 检查该命令是否当前目录下的M文件。
(4) 检查该命令是否MATLAB搜索路径中其他目录下的M文件。
用户可以将自己的工作目录列入MATLAB搜索路径,从而将用户目录纳入MATLAB系统统一管理。
设置搜索路径的方法有:(1) 用path命令设置搜索路径。
例将用户目录e:\matlab7\work加到搜索路径下。
在命令窗口输入:(2) 用对话框设置搜索路径文件→设置路径(或在命令窗口执行pathtool命令)将出现搜索路径设置对话框。
通过“添加文件夹”或添加包含子文件夹“按钮将指定路径添加到搜索路径列表中。
在修改完搜索路径后,则需要保存搜索路径。
pathdef.m保存搜索路径的信息,通过修改该文件也可以修改搜索路径。
1.3.5 命令历史窗口(Command History)在默认设置下,历史记录窗口中会自动保留自安装起所有用过的命令的历史记录,并且还标明了使用时间,从而方便用户查询。
通过双击命令可以再次运行历史命令。
要清除这些历史记录,可选择编辑菜单中的Clear Command History命令。
1.3.6 Start菜单p13在MATLAB主窗口左下角还有一个Start按钮,单击该按钮会弹出一个菜单,选择其中的命令可以快速访问MATLAB的各种工具和查阅MATLAB包含的各种资源。
1.4 MATLAB帮助系统p131.4.1 帮助命令p14MATLAB帮助命令包括help、lookfor以及模糊查询。
1.help命令在命令窗口中直接输入:●help显示当前帮助系统中所包含的所有项目,即搜索路径中所有的目录名称。
●help加函数名显示该函数的帮助说明。
2.lookfor命令help命令只搜索出那些关键字完全匹配的结果。
lookfor命令只对M文件的第一行进行关键字搜索。
若在lookfor命令加上-all选项,则可对M文件进行全文搜索。
(列出的内容很长,可用Ctrl+C终止)3.模糊查询用户只需要输入命令的前几个字母,然后按Tab键,系统就会列出所有以这几个字母开头的命令。
1.4.2 帮助窗口p15进入帮助窗口可通过3种方法:(1) 单击MATLAB主窗口工具栏中的○?按钮。
(2) 在命令窗口中输入helpwin、helpdesk或doc。
(3) 选择Help菜单中MATLAB Help命令。
1.4.3 演示系统●在帮助窗口中选择演示系统(Demos)选项卡,然后在其中选择相应的演示模块。
●在命令窗口输入Demos。
●选择主窗口Help菜单中的Demos子菜单,打开演示系统。
第2章MATLAB数据及其运算2.1 MATLAB数据的特点2.2 变量及其操作2.3 MATLAB矩阵的表示2.4 MATLAB数据的运算2.5 字符串2.6 结构数据和单元数据2.1 MATLAB数据的特点p17矩阵矩阵是MATLAB最基本、最重要的数据对象。
MATLAB的大部分运算或命令都是在矩阵(在复数域上)运算的意义下执行的。
标量对应仅含一个元素的矩阵。
数值数据双精度数,占64位,转换函数double单精度数,占32位,转换函数single带符号整数,转换函数int8,int16,int32无符号整数,转换函数uint8,uint16,uint32字符数据,转换函数char结构体类型(Structure)单元类型(Cell)逻辑型,非0为true,0为false2.2 变量及其操作2.2.1 变量与赋值1.变量命名变量名是以字母开头,后接字母、数字或下划线的字符序列,最多63个字符。
变量名区分字母的大小写。
MATLAB提供的标准函数名以及命令名必须用小写字母。
2.赋值语句(1) 变量=表达式(2) 表达式(值赋给预定义变量ans )其中表达式是用运算符将有关运算量连接起来的式子,其结果是一个矩阵。
例2.1 计算表达式的值 p180的计算结果赋给变量x ,然后显示出结果。
3. 预定义变量 p18表2.1 常用的预定义变量及其含义2.2.2 变量的管理 p191.内存变量的显示与删除删除工作空间中的变量命令:clear 变量名 工作空间窗口专门用于内存变量的管理。