24 MatLab工程数学应用 910 Loading from: MatLa t 123456 b:[ lxl0 double] x: [10x10 double] Ixl struct] ans 建立文本文件 sapmle2m,内容为: d=load( sample. m') (2)save保存当前工作空间中的变量到 MatLab. mat save fname将当前工作区中的所有变量保存到fame文件中。可以通过bad命令 来恢复数据。 Save fname x y z只将变量xyz保存到二进制的工作区文件MAT文件)中,此处 也可以用通配“·”来匹配一类变量。 SAvE血 ame -ASCII用8位AsCn格式保存。 SAVE fname XY Z -ASCII-DOUBLE用16位ASCI格式保存 SAVE fname XYZ- ASCI-DQUBLE-TABS用制表符定界。 SAVE fname XYZ-v4保存一个 MatLab4版本可以调用的MAT文件。 sAⅤ E fname xyZ- APPEND向已存在的MAT文件中加入变量。 3.从内存中清除变量和函数 如果Maab的工作空间中存有许多已经不用的变量或函数,就会占用很多的内存资 源,严重时,有可能导致死机。因而经常用函数cear将用不到的变量和函数从内存中清除 是很有必要的。 clear命令的格式及用法如下 clea clear name clear namel name2name3将 name1,name2,name3从当前工作空间中清除。 clear global name将全局变量name清除
第1拿MLzb简介及倢用指南 clear keyword这里, keyword是 functions, variables,mex, global,al其中之一, 其作用分别是将当前工作空间中的正在编译的M文件、正在使用的变量、MEX文件、全 局变量、工作区中的所有的变量函数及MEX文件清除,l等于将当前工作区完全清空。 clear默认将工作区中的所有变量清除。 clear name只是将名为name的变量、M文件、 MEX文件清除。如果变量name是全局变量,它只是从当前工作区中清除掉,但在其他的 将它声明为全局变量的函数中仍可以访问。如果变量已用 clock锁住,那么它仍将留在内 存中。在选择性清除时,可以使用通配符“*”来匹配符合条件的条目。以上语句也可以采 用函数的形式,如 clear(name) 例17 clear global a Your variables are Clear b Your variables are clear global Your variables are clear 无返回结果。 4.整理工作空间的内存 pack[ filename]通过压缩信息到最小的内存需求来释放内存。如果不带参数,默认会 将变量等信息存入 pack. tmp中,否则存入 filename文件中。 这条命令对硬件配置不太好、经常因内存不足而死机的机器非常有用。这条命令并不 彩响分配给 MatLab的总内存数量。 MatLab以堆方式管理内存,由于长时间对 MatLab进 行操作,经常导致其内存产生许多碎片,虽然从总体数量上看来,内存还很多,但并没有 足够连续的内存空间,从而使得需要较大内存的变量不能得到存储。pak命令可先将工作 空间的所有变量等信息存到硬盘上,然后将内存清空,再从临时文件中取出变量的值,并 将临时文件删除,从而达到整理内存的目的。此外,在 Windows操作系统下,可以通过增 大虚拟内存的方法来减少整理内存的次数。 因为此命令要向硬盘中写入临时文件,因而在用此命令时应保证当前的路径是否允许 写操作,否则会出错。可以通过编辑一个M文件的方法使这个操作过程简化,如同执行批 处理命令。先在Maab的搜索路径下建立一个名为pack2m的M文件,内容如下 cditempdir)i pack
MatLab工程数学应用 cd(cwd) 然后执行下列语句 pack cwd cd(tempdir) pack cd(cwd) 此文件的执行过程如下:先打开显示方式 fecho on),将当前路径保存在变量cwd中 ( cwd=pwd:),将当前工作路径改到 windows的临时文件路径 cd(tempdir),然后执行pack 命令(pack,再将路径改回到刚才的路径(cd(cwd) 5.获得矩阵的尺寸 矩阵的尺寸,即矩阵的每一维数的长度可以用函数si0来求得,此函数用法有很多形式 [m,n]=size《X} [dl, d2, d3,., dn] x size(x) d-size(X)将多维矩阵X的每一维的大小构成的行向量返回给变量d,d的元素个数 即是矩阵X的维数,可以用函数ndm(x来求得。m,叶sz(X)表示将矩阵X的各维 的大小返回给m,n;m=sie(X,dim)表示将矩阵x的第dm维的大小返回给变量m;[dl, d2,d3,…,dn}=size(X将矩阵每个维的大小返回给左边列出的各单独的变量列表。当 左边的变量个数不等于矩阵的维数时,设矩阵的维数为xm,要赋值的变量共有n个,如 n>xm,则矩阵的xm个维数的大小将赋值给前xm个变量,其余变量的值为1:如果n<xm, 前n1个变量将按常规赋值,而最后一个变量将被赋斌值为所有未赋值的剩余各维的大小的 乘积 a-size(x) 2 [ml, m2, m3]=size(x) [ml, m2]=size(x) m1= 15 [ml, m2, m3, m4, m5]=size(x)
第1拿 MatLab简介及使用指南 27 6.获得向量的长度 N= length(x)此命令完全等价于n=max(size(x),即如x为向量,返回向量的长度,如 为矩阵,则返回x的最大的维数。 例18x=1:10 7 910 y=rand(2,4,7) max(size(y)) 7.在不显示变量名称的同时显示变量的内容 disp(x)其效果等同于在工作区中直接输入变量x,而显示的结果只是没有“x=”的 字样,在M文件中可以用来格式化显示变量的值。 例19di coll disp (rand(2,3)) co⊥1 c⊥2 col3 0.13889 0.19872 0.27219 0.20277 0.60379 0.19881 1.43文件及操作系统命令介绍 此部分的命令主要用来对Mtab下的目录和文件进行管理和操作,其命令执行的格 式和各命令的意义与传统的DOS命令都有着许多的相似之处,如改变当前路径的cd命令 显示当前目录下的子目录和文件的列表的dr命令等都几乎是完全相同的,而且也可以使用 通配符。 1.改变当前路径 如果要改变 MatLab的当前的工作路径,可以用cd命令,此命令等同于Dos操作系统 的命令cd,如果不带参数,默认会显示当前的路径, cd directory将路径改变到 directory 如果想进入当前目录的子目录,可以只输入目录名,否则要输入全路径。cd.改变当前路 径到上一级目录。 例20cd E: \MATH SOFTWARES\MatLab\bin F: \MATH SOFTWARES\Matlab cd bin
Maab工程数学应用 F: \MATH SOFTNARES\MatLab\bin 2.显示当前目录下的子目录和文件列夜 在 MatLab中可以直接使用操作系统的命令dr来显示当前目录下的子目录和文件列 表。 dir dirmame显示特定目录下的文件,可以使用所在操作系统中的全部与dr语句有关 的通配符的操作。name= dir('dirmame)或name=di将返回结果以m×1的结构体的形式赋 给变量name,各字段的名称为:name,文件名称;date,修改时间; bytes,文件的大小 isdr,如果name对应的是目录,则为1,否则为0。 cd F: \MATH SOFTWARES \MatLab dir eIsl2isu extern Java simulink bin ghostscript relnotes txt stateflow DeIsLl.isu exlink help rtw toolbox s=dir ('bin') 107x1 struct array with fields date bytes indir 3.删除文件和图形句柄 在 MatLab的命令窗口中也可以执行删除文件的操作,删除文件的命令为 delete, delete filename删除名为 filename的文件,在这里可以使用通配符*,如 delete·,m删除当前目 录下所有的M文件。如果文件名存放在字符串变量s中,可以使用 delete的函数形式 delete(s)这个函数不会显示出确认信息,所以要谨慎使用,以防误删文件。 delete命令也可以用来删除图形对象。 delete(h)删除句柄为h的图形对象。这一操作 会将图形窗口删除并关闭,而不会显示任何确认信息。 4.获取环境变量的值 Matlab中有几个环境变量,环境变量的值随着不同的机器有所不同。如果需要得到环 境变量的值,可以用 getenv函数,其调用格式为 getenv(mame),其中,name是一个字符 串,为要获取的环境变量的名称。此函数以name= vvalue的形式返回一系列列表,如果对应 的环境变量name未找到,则将返回空值 例21 getenv(path) C: \WINDOWS; C: \WINDOWS \COMMAND; F: \MATH; SOFTWARES \MatLab\BIN; E: \PFW; C \WINDOWS\TWAIN 32\SCANPORTi C: \WINDONS\TWAIN\SCANPORT