第1章MtLb简介及使用指南 ③ which file,ext ④ which fun1 in fun2 ⑤ which fun{a,b,c,,,) ⑥s= which(...) 语句①显示指定的fm的全部路径及文件名。fmn可以是M文件、MEX文件、工作区 的变量、内置函数或SMLⅠ NK MODEL,对于后3种情况, MatLab会分别显示信息指出 fun为变量、 MatLab内置函数及 SIMULINK的一部分。可以在fm参数中加入路径以加快 定位速度 语句②显示所有名为fun的函数名及路径。返回的第1条通常为有whch命令返回的 那一条,其他的或是 shadowed,或是只有在特定的环境中才可以被执行。参数-al可以用 在 which命令的所有形式中。 语句③显示有指定的文件名及扩展名的文件的整个路径及名称 语句④显示在M文件fm2中引用的函数funl的整个路径,等同于调试fm2时的 which fun命令。可以用此命令验证在一个函数中调用名为fun】的函数时,到底是哪个路径下的 fun1函数被调用 语句⑥显示有指定参数的函数的路径。 语句⑥将查询的返回结果存入变量s中而不是输出到屏幕上,可以通过调用变量s来 随时查看返回结果。 例10 which eig eig is a bui1t- in function.(eig是一个内置函数) wh⊥che ig a11 eig is a built-in function E: \MATH SOETWARES \MatLab\toolbox\control\elti\eig. m t lti method E: \MATH SOFTWARES \MatLab\toolbox\symbolic\e sym\eig. m i sym method F: \MATH SOFTWARES \MatLab\toolbox \MatLab\matfun \eig. m 8 Shadowed 可以发现, which不单显示ei是内置函数,而且显示了Maab搜索路径中的所有名 为eig的函数 在bi录下建立名为 sample. txt的文本文件,然后输入以下内容: which sample ample not found which sample. txt F: \MATH SOFTWARES \MatLab\bin\sample.txt 不难发现, MatLab默认的扩展名为m,要想查找其余扩展名的文件,就必须输入其扩 展名。 hich solve in heat2 F: \MATH SOFTWARES \MatLab\toolbox\ symbolic\solve.m 则说明,hea2m中调用的 solve函数的路径是F: AMATH SOFTWARESIMatlab Wtoolboxsymbolicksolvem which feval(inline('sin(x)'))
MatLab工程敖学应用 F: \ MATH SOFTWARES \ MatLab\ toolbox \MatLab\funfun\inline\ feval. m t in line method which feval( sin(x)') 上述结果说明,当函数 feval的参数为iesn(x)时,fval( line('sing(x))执行时调用的 是函数F: MATH SOFTWARESMatLab\toolbox MMatLablfunfun@ inline\ m% inline method;而当其参数为'inxy时,即执行语句fval(sn(x))时,调用的是Maab的内置函 数 s=which(humps) E: \MATH SOFTWARES \MatLab\toolbox\MatLab \demos \humps.mm 返回结果存入s变量中,可以调用s变量对结果进行处理 141节讨论了几个查找函数或文件的命令:what, which, lookfor。总体说来,what 列出给定目录下的函数; which用来给出包含给定函数或文件的路径;而 lookfor用来给出 于某个关键字相关的所有路径下的所有函数。它们各有特长,要会灵活运用。 7.显示演示结果 MatLab版本中有一个演示程序,分为几大功能,对每个演示程序都会给出所用到的代 码以及演示结果。其主要作用是使用户快速了解Maab的各种功能和工作过程。Dem有 2种格式: demo ('MatLab'I'toolbox'Isimulink'l'blockset'i' stateflow) demo argument 直接输入demo则打开并运行 MatLab的演示程序。第1种情况,参数为“()”中的任 个即可打开并显示相应的子主题,第3种情况用 argument指定特定的工具箱或类目。 例11demo(" MatLab") demo MatLab language 打开演示程序并将Mtab子类展开 打开演示程序,将Maab子类展开,并将 language部分反显。读者可以自己试验 下该命令的用法。 8. MatLab的搜索路径操作 关于 Matlab的搜索路径的各种操作,在界面操作中已经有所介绍,在命令窗口中主 要通过pah路径操作)、 adipate(增加路径)、mpah(删除路径)3个命令来实现对路径的各 种操作。下面分别介绍这3个命令的用法。 (1)path命令的用法有: p- path path(' empath’)
1章 MatLab简介及使用指南 path(path,'newpath') path('newpath', path ath将 MatLab中的所有搜索路径输出到屏幕上。关于路径的信息被保存在 lobo/ ocal/pathdef m文件中,虽然这是个文本文件,而且系统允许手工更改此文件,但为 了安全起见,建议不要随意更改此文件,最好使用其自带的命令来更改路径。 P-path将所有 返回结果存入变量p中。Pat( newpath)将当前路径更改为 newpath; path(path, newpath)将 newpath路径追加到当前搜索路径的后面;path( newpath',path)将路径 newpath加到当前搜 索路径的最前面。 Matlab有一个默认的搜索路径,当输入一个变量或函数名时,如,输入 vname, MatLab 的搜索过程如下:先将其作为一个变量来搜索,如果没有找到,再将其作为一个内置函数 来搜索:如找到了,就停止搜索,如还没找到,则在当前路径中寻找 vname. m和 Vname. mex 文件 如没找到其中的任何一个文件,则在 MatLab的所有路径中搜索此两个文件,直到找 到这2个文件之一为止,如仍未找到,则返回找不到文件或变量的信息。 例12path Matlabpath F: \MATH SOFTWARES \MatLab \bin \my fun F: \MATH SOFTMARES \MatLab\bin 显示当前的所有搜索路径 path(path, 'f:\xb') path 显示: F: \MATH SOFTWARES\MatLab\toolbox\database\dbdemos F: \MATH SOFTWARES \MatLab\toolbox\java \MatLab f: \xb 可见已将fwxb追加到搜索路径的后面。 path('f:\xb', path) path MatlabpAth f: \xb \MATH SOF TWARES \MatLab \bin \my fun F: \MATH SOFTWARES\MatLab\bin 可见fxb已经加到了最前面。 (2) addpath命令的用法有: ddpath('directory ' addpath('dirl','dir2,dir3,.)
MatLab工程敷学应用 flag ' addpath(dirrectory)将路径 directory加到搜索路径的最前面; addpath 'dirl',tdi2,lin3,) 将所有指定的路径加到搜索路径的最前面。可以用path命令查看运行结果。 Addpath…,nag 将目录列表加到搜索路径的前面或后面,(决定于fag的值,如fag为 begin,加到前面;如 果fag为end,则加到后面)。 Bf 13 addpath c: lwindows-begin addpath c: \windows -end addpath c: \windows c: \temp -begin (3)mpah命令的用法有: rmpath directory/'directory empath(directory) 例14 empath c: \windows empath ' c: \temp mpath(e: windows’) 1.4.2管理变量和工作空间 此部分命令主要是用来获得当前工作空间中的变量的信息和对变量进行管理。比较常 用的有who,load,save,size, length等。 1.列出当前工作空间中的变量 如果在运算过程中,生成的变量的数目太多,就需要经常获得当前工作空间中的变量 的信息,who和whos命令可以用来得到各个变量的简短或详细信息。这2个命令的用法死 出如下 who h。 globa1 who -file filename wh。s varl var2 who默认将内存中的当前变量以简单方式列出。whos默认列出当前内存的变量的名称、 大小、是否为复数等信息: who global和 whos global列出全局工作空间的变量;who-file filename和whos- file filename列出MAT文件中的变量。 who varl var2-和 whos var12 只显示指定的变量 varl var2…,通配符“·”可以配合用来显示符合某种特定条件的当前工 作区中的变量,如whoa·显示当前工作区中以a开头的所有变量的信息。Whos-file
第1拿 MatLab简介及使用指南 filename,vl',v2-)显示 filename的工作区中的变量vl,v2,swho(), whos(-) 将结果赋值给变量s 例15 whos(-file,flow pic, mat, ' ') Name Size Bytes Class mat 1x101 808 double array Grand total is 101 elements using 808 bytes Your variables are b s=whos("a’) s name: 'ar size:【110] bytes: 80 class: ' double who -file flow pic Your var⊥ ables are; mato mat20 mat32 mat 44 hats mat 68 2.变量的文件操作 在对大量的矩阵进行运算操作时,时常需要保存变量或读出变量,这就要用到变量的 文件操作。lad可以从文件中恢复以前保存过的变量;save可以保存工作空间中的变量到 指定的文件。 (1)load没有参数时,系统默认从 MatLab. mat工作空间文件装入内存 load fanme将名为fame的工作空间文件装入内存,如要装入的文件在搜索路径 中,可以不输入路径,否则要输入路径。 load fname x y z只将fame文件中的xyz变量装入内存,这里可以用通配符峰来 匹配符合一定条件的变量。 load fname ext读取一个文本文件,文件中含有与矩阵格式类似的用空格隔开的数 据,文件里可以含有以%开头的注释行。其数据将保存在与文件同名的矩阵变量中 ● load fname- ascii/-mat强制 MatLab把血ame当作文本文件或当作工作空间文件。 sload(")将工作空间文件中的变量返回给结构体变量s而不是装入到内存中,s 的各段的名称即是文件中各变量的名称。如果文件是文本格式,s便是双精度的矩 阵 例16a load MatLab, mat a