什么是 MATLAB 搜索路径?
MATLAB® 搜索路径是文件系统中所有文件夹的子集。MATLAB 使用搜索路径来高效地定位用于 MathWorks® 产品的文件。
搜索路径上的文件夹顺序十分重要。当在搜索路径上的多个文件夹中出现同名文件时,MATLAB 将使用搜索路径中最靠前的文件夹中的文件。
默认情况下,搜索路径包括以下文件夹
MATLAB
userpath
文件夹,它在启动时添加到搜索路径中,并且是用于存储用户文件的默认位置作为
MATLABPATH
环境变量的一部分定义的文件夹MATLAB 和其他 MathWorks 产品的文件夹,它们位于
matlabroot
/toolbox
下面,其中matlabroot
是在命令行窗口中运行matlabroot
时显示的文件夹。
类、包和 private
文件夹不应显式指定为搜索路径的一部分。
您可以将您运行的文件的文件夹明确添加至搜索路径。有关将文件添加到搜索路径的详细信息,请参阅更改搜索路径上的文件夹。
搜索路径上的 userpath 文件夹
userpath
文件夹在搜索路径上处于第一位。默认情况下,MATLAB 将在启动时将 userpath
文件夹添加至搜索路径。此文件夹是存储用于 MATLAB 的文件的便利位置。
默认的 userpath
文件夹因平台而异。
Windows® 平台 -
%USERPROFILE%/Documents/MATLAB
。Mac 平台 -
$home/Documents/MATLAB
。Linux® 平台 -
$home/Documents/MATLAB
(如果$home/Documents
存在)。
或者,要确定或更改当前的 userpath
文件夹,请调用 userpath
。
默认情况下,userpath
文件夹也是您在双击 Windows 系统上的 MATLAB 快捷方式或 Mac 系统上的 MATLAB 应用程序启动 MATLAB 时的启动文件夹。
MATLABPATH
环境变量
MATLABPATH
环境变量可包含其他一些要在启动时添加到 MATLAB 搜索路径的文件夹。这些文件夹被置于 userpath
文件夹之后,但先于 MathWorks 的文件夹。默认情况下未设置 MATLABPATH
环境变量。有关如何设置 MATLABPATH
环境变量的详细信息,请参阅设置 MATLABPATH 环境变量。
确定文件和文件夹是否处于搜索路径上
确定文件和文件夹是否处于搜索路径上的方法有多种。您可以检查单独的文件或文件夹是否处于搜索路径上,也可以查看整个搜索路径。
检查文件或文件夹是否处于搜索路径上
要确定文件是否处于搜索路径上,请运行 which
。如果文件处于搜索路径上,MATLAB 将返回文件的完整路径。filename
要确定文件或文件夹是否处于搜索路径上,请使用当前文件夹浏览器。不在路径上的文件和文件夹将灰显。要确保已对当前文件夹浏览器进行设置,使之指示文件或文件夹是否在搜索路径上,请右键点击任一文件或文件夹,然后选择
选项。将指针悬停在当前文件夹浏览器中任何灰显的文件或文件夹之上以查明其灰显原因。此时会打开一个包含说明的工具提示。工具提示往往会指示文件或文件夹不在 MATLAB 路径上。如果没有显示工具提示,则它可能已被禁用。要启用工具提示,请进入主页选项卡,并在环境部分点击 。然后,选择 > 。选择显示工具提示,说明文件无法访问的原因以显示工具提示。
查看整个搜索路径
运行 path
命令以查看位于 MATLAB 搜索路径上的所有文件夹。
此外,可以使用“设置路径”对话框来查看整个 MATLAB 搜索路径。在主页选项卡上的环境部分中,点击 。“设置路径”对话框随即打开,其中列出了搜索路径上的所有文件夹。有关使用“设置路径”对话框的详细信息,请参阅更改搜索路径上的文件夹。
搜索路径不是系统路径
搜索路径与系统路径不同。此外,MATLAB 搜索路径与系统路径之间没有任何显式关系。但是,两个路径都有助于找到文件,具体如下所述:
MATLAB 使用搜索路径更高效地找到 MATLAB 文件。
操作系统可使用系统路径高效地找到操作系统文件。
MATLAB 如何存储搜索路径
MATLAB 将搜索路径信息保存在 pathdef.m
文件中。此文件包含一系列完整路径名称,搜索路径上的每个文件夹对应其中一个。
默认情况下,pathdef.m
位于 matlabroot
/toolbox/local
中。
当您更改搜索路径时,MATLAB 会在当前会话中使用该路径,但不会更新 pathdef.m
。要在当前和以后的会话中使用修改后的搜索路径,可以使用 savepath
或“设置路径”对话框中的 按钮来保存所做的更改。这将更新 pathdef.m
。
最后,一句话解释,什么是matlab的搜索路径?
你所使用的matlab函数,要在你的m文件中编译运行,就必须让matlab找得到你所用的函数,因此需要设置很多搜索路径,一些是matlab默认的,另一些则是你自己添加的,例如你自己定义的一个函数abc,将其放置在work文件夹下(abc.m),那么在你编译的其它m文件中如果想象通常matlab函数那样使用函数abc,则必须将work文件夹的路径添加到搜索路径,matlab才能找到你的函数abc,才可以使用你自定义的函数。