1-5、搜寻路径
在前一节中,test.m所在的目录是d:/mlbook。如果不先进入这个目录,MATLAB就找不到你要执行的M档案。如果希望MATLAB不论在何处都能执行test.m,那麽就必须将d:/mlbook加入MATLAB的搜寻路径(Search path)上。要检视MATLAB的搜寻路径,键入path即可:
d:/matlab5/toolbox/matlab/general
d:/matlab5/toolbox/matlab/ops
d:/matlab5/toolbox/matlab/lang
d:/matlab5/toolbox/matlab/elmat
d:/matlab5/toolbox/matlab/elfun
d:/matlab5/toolbox/matlab/specfun
d:/matlab5/toolbox/matlab/matfun
d:/matlab5/toolbox/matlab/datafun
d:/matlab5/toolbox/matlab/polyfun
d:/matlab5/toolbox/matlab/funfun
d:/matlab5/toolbox/matlab/sparfun
d:/matlab5/toolbox/matlab/graph2d
d:/matlab5/toolbox/matlab/graph3d
d:/matlab5/toolbox/matlab/specgraph
d:/matlab5/toolbox/matlab/graphics
d:/matlab5/toolbox/matlab/uitools
d:/matlab5/toolbox/matlab/strfun
d:/matlab5/toolbox/matlab/iofun
d:/matlab5/toolbox/matlab/timefun
d:/matlab5/toolbox/matlab/datatypes
d:/matlab5/toolbox/matlab/dde
d:/matlab5/toolbox/matlab/demos
d:/matlab5/toolbox/tour
d:/matlab5/toolbox/simulink/simulink
d:/matlab5/toolbox/simulink/blocks
d:/matlab5/toolbox/simulink/simdemos
d:/matlab5/toolbox/simulink/dee
d:/matlab5/toolbox/local
此搜寻路径会依已安装的工具箱(Toolboxes)不同而有所不同。要查询某一命令是在搜寻路径的何处,可用which命令:
d:/matlab5/toolbox/matlab/demos/expo.m
很显然c:/data/mlbook并不在MATLAB的搜寻路径中,因此MATLAB找不到test.m这个M档案:
要将d:/mlbook加入MATLAB的搜寻路径,还是使用path命令:
此时d:/mlbook已加入MATLAB搜寻路径(键入path试看看),因此MATLAB已经"看"得到test.m:
现在我们就可以直接键入test,而不必先进入test.m所在的目录。
小提示:如何在其启动MATLAB时,自动设定所需的搜寻路径? |
如果在每一次启动MATLAB後,都要设定所需的搜寻路径,将是一件很麻烦的事。有两种方法,可以使MATLAB启动後,即可载入使用者定义的搜寻路径: |
|
|
每次MATLAB遇到一个命令(例如test)时,其处置程序为:
- 将test视为使用者定义的变数。
- 若test不是使用者定义的变数,将其视为永久常数。
- 若test不是永久常数,检查其是否为目前工作目录下的M档案。
- 若不是,则由搜寻路径寻找是否有test.m的档案。
- 若在搜寻路径中找不到,则MATLAB会发出哔哔声并印出错误讯息。
以下介绍与MATLAB搜寻路径相关的各项命令。
1-6、资料的储存与载入
有些计算旷日废时,那麽我们通常希望能将计算所得的储存在档案中,以便将来可进行其他处理。MATLAB储存变数的基本命令是save,在不加任何选项(Options)时,save会将变数以二进制(Binary)的方式储存至副档名为mat的档案,如下述:
- save:将工作空间的所有变数储存到名为matlab.mat的二进制档案。
- save filename:将工作空间的所有变数储存到名为filename.mat的二进制档案。
- save filename x y z:将变数x、y、z储存到名为filename.mat的二进制档案。
以下为使用save命令的一个简例:
B h j y
ans i x z
save test B y % 将变数B与y储存至test.mat
. 2plotxy.doc fact.m simulink.doc test.m ~$1basic.doc
.. 3plotxyz.doc first.doc temp.doc test.mat
1basic.doc book.dot go.m template.doc testfile.dat
以二进制的方式储存变数,通常档案会比较小,而且在载入时速度较快,但是就无法用普通的文书软体(例如pe2或记事本)看到档案内容。若想看到档案内容,则必
须加上-ascii选项,详见下述:
- save filename x -ascii:将变数x以八位数存到名为filename的ASCII档案。
- save filename x -ascii -double:将变数x以十六位数存到名为filename的ASCII档案。
另一个选项是-tab,可将同一列相邻的数目以定位键(Tab)隔开。
小提示:二进制和ASCII档案的比较 |
在save命令使用-ascii选项後,会有下列现象:
|
由上表可知,若非有特殊需要,我们应该尽量以二进制方式储存资料。
load命令可将档案载入以取得储存之变数:
- load filename:load会寻找名称为filename.mat的档案,并以二进制格式载入。若找不到filename.mat,则寻找名称为filename的档案,并以ASCII格式载入。
- load filename -ascii:load会寻找名称为filename的档案,并以ASCII格式载入。
若以ASCII格式载入,则变数名称即为档案名称(但不包含副档名)。若以二进制载入,则可保留原有的变数名称,如下例:
x = 1:10;
save testfile.dat x -ascii % 将x以ASCII格式存至名为testfile.dat的档案
load testfile.dat % 载入testfile.dat
who % 列出工作空间中的变数
testfile x
注意在上述过程中,由於是以ASCII格式储存与载入,所以产生了一个与档案名称相同的变数testfile,此变数的值和原变数x完全相同。
1-7、结束MATLAB
有三种方法可以结束MATLAB:
- 键入exit
- 键入quit
- 直接关闭MATLAB的命令视窗(Command window)