首页 自-MATLAB的介绍与操作

自-MATLAB的介绍与操作

举报
开通vip

自-MATLAB的介绍与操作MATLAB的介绍与操作(一)Matlab的基本元素ﻫ MATLAB的叙述以运算式为主,其形式有二:ﻫ    variable=expression  (指定运算式给一个变数)  or  expression        (只是单纯一个运算式)ﻫﻫ运算式由运算子,纯数, 矩阵,函数, 变数或特殊文字等组成。ﻫ  1.纯数–有整数,实数, 和复数ﻫ     3,-99 ,0.0001,1.60210E-20 , 6.022e23          2i,  -3.14159i, -4+3iﻫ  1.1 四则运算 :...

自-MATLAB的介绍与操作
MATLAB的介绍与操作(一)Matlab的基本元素ﻫ MATLAB的叙述以运算式为主,其形式有二:ﻫ    variable=expression  (指定运算式给一个变数)  or  expression        (只是单纯一个运算式)ﻫﻫ运算式由运算子,纯数, 矩阵, 函数 excel方差函数excelsd函数已知函数     2 f x m x mx m      2 1 4 2拉格朗日函数pdf函数公式下载 , 变数或特殊文字等组成。ﻫ  1.纯数–有整数,实数, 和复数ﻫ     3,-99 ,0.0001,1.60210E-20 , 6.022e23          2i,  -3.14159i, -4+3iﻫ  1.1 四则运算 :( +-*/or \)与乘幂(^ )ﻫ     例 : (a)1+2-3*4/5%4/5and5\4 havethesamevalue ans= 0.6000       (b) (2*3)^2-100ans = -64    注: 1. 运算的顺序为^,*或/(\),+或- ,若有括弧,则由括弧内运算优先。       2.a/b 表a除以 b,a\b表 b除以 a。ﻫ           3.我们可将运算式指定给一个变数,然后其值被列印出来,例如:           value= (2*3)^2-100value =   -64        4.可在运算式后加上分号, 则结果将不会显示出来    1.2Matlab函数库       Matlab 中内建了许多函数, 以下列出少部份函数与一些例子 函  数           功能  abs(x)     对实数为取绝对值,对复数则取其magnitude sign(x)    当x为实数且>0,=0, <0时,则分别回应1,0,-1           当x为复数且≠0时,则回应x/abs(x)值    ceil(x)       取大于或等于x,但最接近x 的整数值    floor(x)   取小于或等于x, 但最接近x的整数值   fix(x)       将x小数点以下的位数,全部舍去    round(x)    将x值做四舍五入log(x)    以自然底数为底的对数函数log10(x)   以10为底的对数函数   sqrt(x)    x的开平方根      例 :(a) 2100为几位数ﻫ            解:一般算法为log 2100= 100log2=30.10所以2100为31位数,ﻫ            在Matlab中可用下式算出             n=ceil(log10(2^100))n = 31        (b)3-100在小数点之后第几位数,始为非零小数ﻫ   解 :一般算法为log3-100= (-100)log3=-47.71= -48+0.29所以    3-100在小数点之后第48位, 始为非零小数, 在Matlab 中可ﻫ  用下式算出              n=abs(floor(log10(3^(-100))))n =48         (c)求x2 +x+1=0 的根ﻫ 解:代公式              x1=(-1+sqrt(1^2-4*1*1))/(2*1)x1 =-0.5000+0.8660i             x2=(-1-sqrt(1^2-4*1*1))/(2*1) x2=-0.5000-0.8660i   1.3 数值的显示格式        一般来说,当输出结果为整数时,内定显示格式为整数; 当结果为实数时, 内定显ﻫ    示格式为小数点以下四位;当结果为相当大的数时,则以科学符号表示。当然我们ﻫ     可用下列函数,来改变显示格式。           format short  显示出5个十进位数字      format long  显示出15个十进位数字       format shorte  显示出5个十进位数字,并以科学符号表示  formatlonge  显示出15个十进位数字,并以科学符号表示  例:(a) x=sqrt(2) x =1.4142      formatlong  x x= 1.41421356237310       formatshort e   x x= 1.4142e+000(b) 考虑以下例子,可看出显示格式的重要性ﻫ       formatshort  A=[pi0;pi/2pi/4];      B=tan(A)   B=1.0e+016* -0.0000  0 1.63320.0000       注: 在此,我们将B(2,1)视为无穷大(∞),B(1,2)和B(2,2)相对于B(1,1) 被视为0       但是 tan(pi/4)应为1。因此,我们改以format longe 来看答案。ﻫ            formatlonge   B    B=-1.2246e-016    0 1.633177872838384e+0169.999999999999999e-001    注:同样地,我们将B(1,1)视为0, B(2,1) 视为无穷大(∞),而且可以发现B(2,2)         趋近于1,由此可见,显示格式的重要性。  1.4复数的运算  除了基本 +, -*,/之外, 尚有下列函数的功能:ﻫ        real(z)    取复数z 的实数部份       imag(z)      取复数z 的虚数部份          conj(z)   取复数 z 的共轭复数          angle(z)    取复数 z的幅角ﻬ  例: i=sqrt(-1);       z=2+3*i;     imag(z)  ans=3             angle(z) ans = 0.9828      注:  复数的幂次方znﻫ            (1)当n为整数时,此与实数时并无不同          例:  (3+2*i)^3 ans=-9.0000 +46.0000i           (2)当幂次方为分数时, 此为复数z开n 次方根,此时所回应的只有一个解,ﻫ        就是 Principal Value     例:(2+3*i)^(1/3) ans =  1.4519+0.4934i 2.矩阵     详细说明如下(二)如何在Matlab中输入矩阵      方法1:相同列 (row) 的元素以空白分隔,不同列以分号(;)分隔,整个矩阵以中括      弧([] )表示, 且注意每一列所含的元素个数需相同。   例:输入矩阵A=[21-3;579;0 8 -4]ﻫ      A=[21 -3;579;0 8 -4]A= 2  1  -3   5  79 0  8 -4   方法2 : 利用Matlab 指令或函数来产生特殊矩阵ﻫ   例:(a) 产生一个33Identity矩阵ﻫ     A=eye(3)   A=    1 0 0 0  1 0  0 0  1   (b)产生一个34 的矩阵, 其中的元素皆为1       B=ones(3,4)B = 1   1 1  1 1 11 11 1  11      (c)产生一个与B同大小的零矩阵           C=zeros(size(B))C=0  0  0  0  0  0 0 0 0   000 注: 1.size命令显示出矩阵的大小。以上例子每个函数(即eye,ones,zeros)括弧内的语法皆可混合使用。ﻫ  方法3:用指定的值产生向量或矩阵    例: (a)设定元素为-5,-4,... , 4,5的一个向量x          x=-5:1:5  %起始值-5,最后值 5, 间隔取1 x=  -5   -4-3 -2 -1  0  12  34 5  (b) 设定 元素为-2,-1.6, ...,1.6,2 的一个向量yﻫ             y=-2:0.4:2  %起始值-2, 最后值2, 间隔取0.4y=Columns1through7-2.0000  -1.6000 -1.2000-0.8000-0.4000   0  0.4000 Columns8 through11  0.8000 1.2000  1.60002.0000      (c) 产生一向量z为[ 12 35 7922.32.6]             z=[1:3 5:2:92:.3:2.6]z= Columns1through7 1.0000 2.0000 3.0000  5.0000  7.0000  9.0000 2.0000Columns 8through 9 2.3000  2.6000      (d) 综合上述方法 1~3,可产生较复杂的矩阵,如 :          D=[1.32.5;37.5];     E=[Dones(size(D)) ;zeros(size(D))eye(2,2)]                    E=1.30002.5000  1.00001.0000 3.0000   7.5000   1.0000  1.0000   0    0 1.0000     0 0 0  0  1.0000 (三)矩阵元素的运算操作    1.取出矩阵的子矩阵(submatrix)       例 :(a) A=[1 20 56;-1-2 348;-5-2 31 9;-59736;27852]   n=[135];     subA=A(n,3)  %subA为 A矩阵第3行的第1,3,5列元素所组成。A=1 20 5   6 -1-2 3 4  8-5-2  3 1 9 -5  97  3 6 2 785 2subA=0  3  8     注: 在此之前并未指定subA 的大小,就能决定SubA为3×1的行向量。    (b)B=A(n,:) %n = [13 5]     %B为A矩阵的第1,2,3列元素所组成。 B =   1   20  5 6 -5-2  3 1  9 2 7  8 52           (c)   C=eye(3);   %C本为3×3的Identity矩阵   C(:,2)=A(n,2) %现在第2行被 A矩阵第2行的第1,3,5列所取代。 C=  12 0 0-20   0  7 1     注:类似于括弧内冒号(:)的用法另有许多, 简述如下:  A(:,j)     取出A 矩阵的第j行(column)。        A(i,: )      取出A矩阵的第 i列(row)。ﻫ        A(:,:)   产生与A相同的矩阵。   A(:)      产生一行向量,其元素为A 矩阵的所有元素(逐行排下来)。ﻫ        A( j:k)   取出行向量A(:)的第j个元素, 到第k个元素。ﻫ      A( : ,j: k)  取出A 矩阵的第j行到第 k行子矩阵。       A(j:k, :) 取出A矩阵的第 j列到第k列子矩阵。       A(j :k,q:r ) 取出A 矩阵的第j 列到第k列,交集第q行到第r行子矩阵。                 2.矩阵运算ﻫ      Matlab 除了提供标准矩阵运算(+,-, *,/…等),另有"矩阵元素逐对运算"。其方式可ﻫ       藉由运算子前放置一句点(.)达成。ﻫ    例:  A=[1:3;4:6;7:9];   x= 7;      A+x  %A的每个元素加7ans = 8 9   10 1112  13 14  15  16        A*x  %A的每个元素乘7ans= 7   14 2128 35 42  49    56 63       A=[1:3;4:6;7:9];     B=[1:2:5;7:2:11;13:2:17];      A+B %矩阵A与矩阵B对应元素相加  ans= 2  5811 14 17  202326    A-B    %矩阵A与矩阵B对应元素相减ans=   0 -1-2-3 -4 -5-6-7  -8     例 :A=[1 2; 34];       B=[56;78];    A*B  %此为一般矩阵标准乘法 ans=  192243 50        A^3 %A的3乘幂ans=  37  5481118         A.^3 %矩阵A内每一元素的3乘幂 ans = 1 8 27 64     A.*B  %矩阵A与矩阵B相对应的元素逐对相乘 ans= 512 21  32       A.^B %矩阵A内每一元素的乘幂,是与其相对应B矩阵的元素  ans= 1  64 2187     65536      注意:1. 加法与减法只对同大小的矩阵有效。 2.矩阵大小对于乘法,需符合乘法规则。           3. 矩阵的乘幂, 矩阵必须是方阵。   4.矩阵的除法, 我们将于第四项中说明。ﻬ 3. Matlab 函数库ﻫ   Matlab对于矩阵与向量,亦提供了许多内建函数。ﻫﻫ       例:(a)转秩矩阵,一般以符号(')来表示ﻫ       x=[124] ;    A= [12; 45] ;    trsp_x=x'   trsp_A=A' trsp_x= 1 2  4trsp_A=14 2 5        下面例子是两行向量的内积与外积           y=[12 1]';     z=[2 -1 0]';        inp= y'*z %内积  outp=y*z'  %外积inp=   0outp= 2-1 0  4 -2  0 2 -10     (b)复数矩阵(')则产生共轭转秩   i=sqrt(-1);   x=[1-i2+3*i 5-2*i];    A=[5+2*i3-i; 2+3*i8-9*i; 3-6*i2+4*i];        x'   A'ans = 1.0000+1.0000i 2.0000-3.0000i 5.0000+2.0000ians=  5.0000-2.0000i 2.0000-3.0000i3.0000 +6.0000i 3.0000+ 1.0000i 8.0000 +9.0000i2.0000- 4.0000i             注: i=sqrt(-1)必须要先指定。ﻬ         x=[1-i;2+3*i;5-2*i];   y=[121]';    inp=x'*x %内积,x'isconjugate transposeofx    outp=x*y' %外积inp= 44outp = 1.0000 -1.0000i 2.0000-2.0000i 1.0000 -1.0000i2.0000 +3.0000i 4.0000 +6.0000i2.0000+ 3.0000i5.0000-2.0000i 10.0000 -4.0000i5.0000 - 2.0000i     (c)一些内建函数(abs, ceil,  sqrt,round, fix… 等), 对于矩阵,则是作用在          其每一元素上i.e. f(A)=[f(aij)] 。        例:i=sqrt(-1);       A=[0-2;2-3;-7.5 1.23;2.9-8];       B=[1+i-pi+i; 0 2-i];     abs(A)       abs(B) ans= 02.00002.0000  3.0000 7.50001.2300 2.90008.0000ans=1.41423.2969  02.2361        ceil(A)ans=  0-22  -3-72   3 -8             sqrt(abs(B)) ans= 1.1892  1.81571.4953             round(A) ans=0 -22-3-813 -8        x=[2.45-2.686.29 3.18];    sort(x)%当x为行向量或列向量时,sort(x)表示将x上的元素        %由小而大排列 ans =-2.6800 2.45003.1800 6.2900     A=[4.643-2.564;2.5431.025];      sort(A)%当A为矩阵时,sort(A)表示将A上每一行的元素,     %由小而大排列ans=  2.5430 -2.5640 4.6430 1.0250        i=sqrt(-1);     z=[1-3*i2+2*i 4-5*i];    sort(z)%当z为复数时, sort(z)表示将z上的元素,根据其         %magnitude值,由小而大排列ans=2.0000+2.0000i1.0000- 3.0000i 4.0000-5.0000i 注:下面这个例子中, 将介绍一个重要的向量计量函数(norm)          x=[4 3-2-1];     norm(x,2) %计算出列向量x的2-norm(范数)    %相当于计算sqrt(x*x')         %x其元素亦可为复数 ans=5.4772        x=[45 15];     norm(x,inf)%计算出列向量x的inf(∞)-norm(范数)      %max|xi|,1≦i≦n ans=5          i=sqrt(-1);       z=[2-3*i; 1+5*i; 4+5*i];      norm(z,1)%计算出行向量z的1-norm(范数)             %Σ|zi|,1≦i≦n ans= 15.1077       (d)处理矩阵的主对角,上三角或下三角的函数diag(A)产生一行向量,其元素为A矩阵主对角线上的元素   但是如果A是一向量,则产生一个主对角矩阵 diag(A,k)产生一行向量,其元素为A矩阵第k对角线上的元素 k>0表示在主对角上方,k<0在主对角下方 triu(A) 产生一与A同大小的矩阵,其主对角线以上的元素与A相同,   其余为零triu(A,k) 产生一与A同大小的矩阵,其第k对角线以上的元素与A相同,其余为零tril(A)   其结果与triu(A)类似,只是将主对角线以上改为以下tril(A,k)  其结果与triu(A,k)类似,只是将主对角线以上改为以下      例:         (1) A=[1:4; 5:8;9:12; 13:16]       diag(A) %产生一行向量,其元素为A矩阵主对角线上的元素 A=  1 23   45   67  8  91011  12 13 14 15   16ans= 1    6  1116        diag(diag(A))%当diag(A)是行向量时,则diag(diag(A))产生           %一主对角方阵,其主对角线上的元素为diag(A)。  ans=   10 0006  0  000 110 00 016              x=[-54–5]';diag(x)ans= -50 00 4  0 0  0-5           A=[1:4;5:8;9:12; 13:16]     diag(A,2) %产生一行向量,其元素为A矩阵第二对角线上的元素A = 1 2  3 4 5 6   78  910 111213 14 15 16ans=38    注:当A为行向量或列向量时, 则diag(A,k)产生一方阵,且其第k对       角线上的元素为A,其余为零。                diag(diag(A,2),2) ans=   0  0 300  00  8 0 0  0  00 0   0 0     (2) A=[1:2:7;9:2:15;17:2:23] %A不一定是方阵     triu(A) %产生一与A同大小的矩阵,其主对角线以上的元素与A相同,      %其余为零 A= 1  3  5  7  9 11  13 15 1719 2123ans =  1 3 5  7 0 11 1315 0  0 21   23       triu(A,-1)  %triu(A,k)表示,产生一与A同大小的矩阵,其第k对角线以       %上的元素与A相同,其余为零ans =   135  7911 1315 01921 23          tril(A,-1)%tril(A,k)表示,产生一与A同大小的矩阵,其第k对角线以        %下的元素与A相同,其余为零 ans=   0    0 00  900  01719   0 0        (e)关于计算矩阵的函数(如 det ,inv, rank…等)       例:      (1) A=[23 6;493;946];       det(A) %此为求A矩阵的行列式值(determinant) ans= -297          (2) A=[24 1; 4 54; 14 5];     inv(A)%此为求A的反矩阵(inverse matrix)ans= -0.2571  0.4571-0.3143 0.4571-0.25710.1143 -0.3143 0.11430.1714            B=[1:3;4:6;7:9];          inv(B)Warning: Matrix is closeto singular orbadlyscaled. Results maybeinaccurate.RCOND= 2.055969e-018.ans=1.0e+016* -0.4504  0.9007-0.4504  0.9007-1.8014 0.9007 -0.4504 0.9007 -0.4504        注:在此出现singular警告,是因为B矩阵的行列式值为零。          以上(1),(2)两个例子,皆需要求A矩阵为方阵         (3)A=[135;454;15 1];       rank(A) %决定A矩阵的秩数 ans = 3     (f)统计向量(或矩阵)的函数          这些函数原则上以向量为主¸若是矩阵则逐一处理矩阵的行向量。          例:         (1)x=[1-3 24 5];     sum(x)%决定x列向量的元素值总和  ans=9 (2)x=[14 2 59 456]';     max(x)%决定x行向量中最大的元素值 ans=45 (3) i=sqrt(-1);      z=[12+9.2*i;14-8*i;15;-16*i];    min(z)%当z为复数时,min(z)回应向量z中最小magnitude值的元素 ans = 15 (4) A=[1 23;45 6;7 89];         prod(A)%当A为矩阵时,prod(A)将A矩阵每一行上的元素相乘,      %存成一新的列向量ans=28  80 162 (5)A=[12 3;456;789];   mean(A) %当A为矩阵时,mean(A)取A矩阵每一行上元素的平均数    %(mean),存成一新的列向量 ans= 4 5 6   (6) i=sqrt(-1);    z=[2+i  3+5*i 2-3*i ];   median(z)%当z为向量时,median(z)决定z所有元素的中位数ans=  2.0000-3.0000i     4.矩阵的除法运算    Matlab 提供了左除(\)与右除(/)两种        X=A\B即是解A*X=B      X=B/A即是解 X*A=B      左除B必须与A有相同列数,如果A是方阵则依照GaussianElimination   分解A成为LU,然后解 A*X(:,j)=B(:,j), B(:,j)表示矩阵B的第j行。         如果A不是方阵则依照Householder Orthogonalization分解A成为QR,然后解       under/over-determined 方程组A*X(:,j)=B(:,j),依照最小平方差的意义。   右除B/A=(A'\B')'    例1:试解联立方程组          2a- b - c = 4       a-  b  +c=0        -3a+ 2b -2c =-4    在线性代数里,可以将此方程组写成矩阵乘法,有以下两种形式          (1) A*x =B 其中 A=[2-1-1;1-11; -32-2]           x=[a  b  c]', B=[40 -4]'                A=[2-1-1;1-1 1;-32-2];     B=[4;0;-4];   x=A\B%左除x= 4.0000 4.0000 -0.0000           解出a=4 b=4c=0。           (2) x*A =B  其中x=[abc],A=[21-3;-1-12;1 1-1]              B=[40-4]                 A=[21 -3;-1-12;11-1];   B=[4 0-4];      x=B/A  %右除x=4.0000 4.0000 0.0000         同样地, a=4b=4 c=0。  例2:Solve thefollowingover-determinedsystemofequations          x*s =y,wherex =[-102]',y =[-2 -11]'         x=[-102]';y =[-2 -11]';     s= x \y %s是常数s = 0.8000        解出s= 0.8, 表示s=0.8minimizes ∥x*s -y∥2 ,forall s inR          例 3:Solve thefollowingunder-determinedsystem ofequations            Ax=b,whereA=[1 1 01 2;30121;22-1 0 -1], b=[5 52]'        我们先利用函数rref观察扩增矩阵[A b],以判断此系统是否有解?      A=[1101 2; 30121;2 2-1 0 -1];      b=[55 2]';       rref([Ab])ans=  1.0000  0   0  0 -1.3333-1.0000 01.0000  0 1.00003.3333  6.0000  0   0  1.0000 2.00005.0000 8.0000           由ans得知,此系统有无限多组解 .    再利用A\b得到一组解        A\b ans =1.1333 0.6667   0 0 1.6000      Matlab计算A\b,是利用QR分解的结果,令y=Q'*b;再求x=R\y          [Q,R]=qr(A)      y=Q'*b;     x=R\y Q=-0.2673 0.3586 -0.8944-0.8018-0.5976 0.0000-0.5345 0.7171 0.4472R= -3.7417 -1.3363 -0.2673 -1.8708 -0.801801.7928-1.3148 -0.8367 -0.5976 0 0 -0.4472-0.8944 -2.2361x=1.1333 0.6667 0   0 1.6000(四)如何在Matlab中绘图 1.二维绘图    在Matlab中,提供了许多有关绘图的元件, 更可以在所绘的图形上加入ﻫ       标题, 轴名称,与其他特征,以下列出一些相关函数及其功能 。        函数        功能      plot(x,y)    绘出在向量x,与向量y上相对应元素的点之图形;如果         x,y皆为矩阵, 则绘x的第一行对应y第一行的图,然后逐ﻫ                 对x,y重复。    subplot(a,b,c) 将视窗分割成a×b个子视窗,并将图形放置于第c个        子视窗。      title('???')   在图形上方,显示标题。     xlabel('???')   在图形上,标示x轴的名称。      ylabel('???')  在图形上,标示y轴的名称。        grid     在图形上套上格子网。         axis(p)     p为4个元素的列向量,分别标示出x轴与y轴的上下界。          hold  用于使多个图形重叠。   注:1. plot可被loglog取代,则绘出全对数图。       2.在绘图时可用其他符号来当绘图点(如:+-.*:- ...等),其方法为在ﻫ         plot的参数内,加入一个以引号('')标注的符号,如plot(x,y,'+')。      3. title,xlabel, ylabel, grid皆须置于其所指定的plot函数之后。        例:(a) x =0:0.1:2*pi;     y=sin(x) ;        plot(x,y)  clf%清除先前的图    x=-2*pi:.1:2*pi;y=sin(x);    plot(x,y,'+');%点上面画'+'的符号没有连线  xlabel('x-axis');ylabel('y-label');    holdon;   %下个图与上图共同在一画面上  y=cos(x);      plot(x,y,'r-'); %r-表示用红色线连成图形     grid;    holdoff;  clf    x=0:.1:5;y=2*x.^2-3*x+7;     subplot(1,2,1);plot(x,y);  xlabel('x-axis'); ylabel('y-axis');     subplot(1,2,2);   loglog(x,y,'+');%x,y轴上的单位采取对数值的标准  xlabel('x-axis');ylabel('y-axis');      (d)clf;        x=1:.1:5;  subplot(2,2,1);plot(x,x);  %第一个图形      title('plotofy=x');    xlabel('x-axis');ylabel('y-axis');     subplot(2,2,2); plot(x,x.^2);                %注意在此的x.^2,点(.)不可省略 title('plotofy=x^2');       xlabel('x-axis');ylabel('y-axis');     subplot(2,2,3);plot(x,sin(x));%第三个图形  title('plot of y=sinx');     xlabel('x-axis');ylabel('y-axis');       subplot(2,2,4); plot(x,cos(x));  %第四个图形  title('plot ofy=cosx');     xlabel('x-axis');ylabel('y-axis');    2. 三维绘图       对于函数z=f(x,y),Matlab提供了一套立体绘图功能,其中包括:       1.meshgrid用来产生完整的x-y平面上的点集,以供立体绘图函数所需。ﻫ     2. mesh, surf,surfl,surfc,用来绘出立体图形。ﻫ    3.contour3用来绘制显示出曲面的立体轮廓线。  4.view(a,b) 以不同的位置来观看曲面;特别需注意的是,在view(a,b)中,ﻫ      a代表方位角(horizontalrotation),b代表仰角(verticalelevation);    Matlab内定值为 a=-37.5。,b=30。。        例:(a) clf;  [x,y]=meshgrid(-5:.2:5,-5:.2:5); %产生x-y平面上的点集    z=0.5*x.^2-0.5*y.^2;     surfl(x,y,z); %绘制曲面z=f(x,y)附有亮光     view(30,30);%改变观测的角度    axis([-55-55 -1515]) %限定x,y,z轴的范围     xlabel('x-axis');ylabel('y-axis');zlabel('z-axis');         (b)[x,y]=meshgrid(-5:.1:5,-5:.1:5);      z=0.5*x.^2+0.5*y.^2;      contour3(x,y,z,20);%数字20代表要画出之曲线的数目     axis([-5 5–55030])  xlabel('x-axis');ylabel('y-axis');zlabel('z-axis');  (五)使用Matlab的求助方式,与需注意的陷井和其他事项求助方式help指令在Matlab中,若对任一指令或函数不清楚,则可用help指令,其格式    是在help之后,加上欲查询的指令或函数。       例:  helponesONESOnesarray.  ONES(N)isan N-by-Nmatrixofones.  ONES(M,N)orONES([M,N])isanM-by-Nmatrixof ones. ONES(M,N,P,...)or ONES([MNP...])isan M-by-N-by-P-by-...arrayof ones.ONES(SIZE(A))isthesamesizeas Aandallones.SeealsoZEROS.lookfor指令不同于help指令,lookfor是在其后加上欲查询的关键字,       查询与其相关的指令或函数,关键字从help内容寻找。需注意的陷井  对于档案,变数,与函数的命名须小心,其规则为以英文字母为开头,后加字母         与数字的组合,不可以有空白或标点符号, 且现存的函数名避免使用。    (b) 在 Matlab中,大小写英文字母是有区分的, 而且Matlab函数都是小写字母开头。注意空白的使用,且乘号( *)也不可用空格取代。      例:notebook=45  ﻠ??? tcompact;note book   |Missingoperator,comma,or semi-colon.           这个错误讯息是因为 变数名称, notebook中有空白。        clear %清除所有变数      g=pi;    G       ???ReferencetoaclearedvariableG.            变数G已被清除, 虽然小写g又被指定为pi,但与大G仍有所区分。       x=[12+3*i]y=[12+3*i]%在此空白,造成x,y向量的不同 x = 1.0000 2.0000+ 3.0000iy=1.0000   2.0000    0 +3.0000i           x是含有两个元素的向量,y则有三个元素其他事项(储存, 载入,日记档, 查询变数 ...等) 在Matlab中,可做变数的储存与载入,以供下次处理之用,其方法与功能     列于下:    指令        功能      save              将所执行过的变数与其内容, 储存成一个内定的             档案,其档名为matlab.mat                       savefname     将所执行过的变数与其内容, 储存成 fname.mat档案                   savefnamevariables指定所执行过的variables变数与其内容,储存成               fname.mat档案    load      载入档案matlab.mat   load fname    载入档案fname.mat   (b)相对于save指令,日记档(diary)是用来储存执行过程,而非只是变数的内容,     其使用方法为, 下diaryon 指令, Matlab即开始将所执行的过程与指令记录下来,   直到下diary off 时关闭,并将其存成内定档名diary; 而下diary  fnmae是将其   存成指定的档案fname。   (c)对于使用过程中,变数的管理 Matlab提供了下面的函数who列出目前记忆体内的所有变数whos  详细列出目前记忆体内所有变数的资讯  exist   查询一个变数或一个档案是否存在,有五种回应值(0~5), 分别代表ﻫ     0:非变数亦非档案;    1:是一个变数;      2:是一个M-档案;       3:是一个Mex-档案;      4:是一个Simulink函数;         5:是一个Matlab内建函数 clear 清除记忆体内的变数或函数  例 :    clear %清除所有变数      a=pi;    whos  %列出记忆体中的变数exist sin %查询sin是否存在与其属性NameSizeBytesClassa   1x1 8doublearrayGrandtotalis 1elements using8bytesans = 5     注:由ans=5可知,sin为Matlab中的内建函数。ﻬ(六)习题依(a)~(e)的指示, 输入下列的矩阵:A=[505  B =[0 2+i   3-2i C=[1 2  3    050  2-i  0    -5+4i      5 10 15     40 4]    3+2i -5-4i0  ]       369]使用diag 函数, 输入A矩阵。使用zeros函数,输入A与B矩阵,然后再将其他非零元素输入。定义 a=5,b=4,再利用a,b输入A矩阵。定义适当的变数,然后仿照(c),输入B矩阵。利用冒号(:),输入C矩阵。建立一个5×5的矩阵,使用函数sum,求此矩阵第一列和第三行的和。使用函数max, 找出此矩阵中,最大的元素为何?依(a)~ (c)的指示, 解下列方程组: 2x+5y=9    2x +2y=3 分别使用矩阵的除法(/)与(\),解此方程组。利用函数inv,验证与(a)的答案是否相同。将此两条直线, 用函数plot与hold绘出,判断交点是否与(a)(b)相同。 写下下列产生的矩阵A ~E:A=[2:4:17; 3: -2:-4]B=[-1:2.5: 10; pi: 8; 10:-5/3:3]C=[eye(2);5:5:11]D=5+[zeros(3);111]E=[4*eye(4)+ones(4); zeros(1,4)]对于下列矩阵A~D, 利用Matlab中所提供的运算元(: )与等号(=),将原矩阵A~D,分别转换成符合条件(i ),(ii)与(iii)的新矩阵: A= [2 01        B=[35 0-1   -6 2 3        1-320       45-2 ]             4 6-7-4]   C = [ 5 1 4       D=[3 61 0    -8  0 7          -12 3 -4      3 -62      -58 12    2 5 -4]       40 03 ]对原矩阵的任意两列,做列交换。使用(i)的方法,使得新矩阵的第(1,1)元素,在其所在行的绝对值为最大者。使用列交换与列加减, 使得新矩阵的第一行,除了第(1,1)元素不为零外,         其余皆为零。使用内积的方法, 求下列每个向量元素平方和的平均。w=[15 526]  (c)x =[-2 30152]y=[816-423]   (d) z =[ 6 -30 071]令矩阵A= [8-7 6 -5 依下列步骤,回答问题:         40 32   -1    1  47 ]将矩阵A,分成上三角与下三角矩阵, 并分别定义成 U 与 L 。设 A1 =L×U,且令L1为A1的下三角矩阵,U1为A1的上三角矩阵。设A2=L1×U1,重复步骤(ii),试预测An=? , n>3。若A为一个k×k的矩阵,问当n为多少时?An将会是一样的矩阵。写一 Matlab程式在相同的座标轴上,x的范围为-2pi:.02:2pi,绘制函数ﻫ y=cos(x)和y=cos(x3),并使用函数xlabel,ylabel,与title清楚的注解图形。用函数mesh和meshgrid绘制下列函数的立体图:(a)  z=8xy*e-x^2-y^2      (b)z= x3/3 -xy2并使用函数 surf和contour重新绘制曲面。
本文档为【自-MATLAB的介绍与操作】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
含含
暂无简介~
格式:doc
大小:192KB
软件:Word
页数:34
分类:生活休闲
上传时间:2022-07-31
浏览量:0