1.7.1 搜索路径机制和搜索顺序

路径其实就是给出存放某个待查函数和文件的文件夹名称。当然,这个文件夹名称应包括盘符和一级级嵌套的子文件夹名。例如,现有一文件lx04_01.m存放在D盘“MATLAB文件”文件夹下的“M文件”子文件夹下的“第4章”子文件夹中,那么,描述它的路径是:D:\MATLAB文件\M文件\第4章。若要调用这个M文件,可在命令窗口或程序中将其表达为:D:\MATLAB文件\M文件\第4章\lx04_01.m。在实用时,这种书写因为过长而很不方便,MATLAB为克服这一问题,引入了搜索路径机制。

设置搜索路径机制就是将一些可能要被用到的函数或文件的存放路径提前通知系统,而无须在执行和调用这些函数和文件时输入一长串的路径。

必须指出,不是说有了搜索路径,MATLAB对程序中出现的符号就只能从搜索路径中去查找。在MATLAB中,一个符号出现在程序语句里或命令窗口的语句中可能有多种解读,它也许是一个变量、特殊常量、函数名、M文件或MEX文件等,到底将其识别成什么,这里涉及一个搜索顺序的问题。

如果在命令提示符“>>”后输入符号xt,或程序语句中有一个符号xt,那么,MATLAB将试图按下列次序去搜索和识别:

(1)在MATLAB内存中进行检查搜索,看xt是否为工作空间窗口的变量或特殊常量,如果是,则将其当成变量或特殊常量来处理,不再往下展开搜索识别;

(2)上一步否定后,检查xt是否为MATLAB的内部函数,若肯定,则调用xt这个内部函数;

(3)上一步否定后,继续在当前目录中搜索是否有名为“xt.m”或“xt.mex”的文件存在,若肯定,则将xt作为文件调用;

(4)上一步否定后,继续在MATLAB搜索路径的所有目录中搜索是否有名为“xt.m”或“xt.mex”的文件存在,若肯定,则将xt作为文件调用;

(5)上述4步全走完后,仍未发现xt这一符号的出处,则MATLAB发出错误信息。

必须指出的是,这种搜索是以花费更多执行时间为代价的。