MATLAB 路径设置

本篇记录本人使用Matlab时,涉及到的有关Matlab搜索路径设置的问题。

Matlab的搜索路径

搜索路径(search path)或者路径是文件系统中所有文件夹的子集。Matlab搜索路径来高效的定位文件,且可以访问搜索路径里的任意文件。
搜索路径里文件夹的顺序很重要。当同名的文件出现在搜索路径上的多个文件夹时,Matlab使用最靠近搜索路径顶部(top)的文件夹里的那个文件。

Matlab共有两种搜索路径

  • MATLAB提供的文件夹或者其它MathWorks产品
    这些文件夹在 “matlabroot/toolbox“下, 使用matlabroot 可以查看该根目录.

  • MATLAB用户路径(userpath)
    用户路径文件夹是存储那些MATLAB在启动时添加到搜索路径的文件.

你可以把你要运行的文件夹添加到搜索路径.
类, 包, 和私有文件夹不再搜索路径上.

MATLAB搜索路径的添加

可以使用MATLAB图形交互界面添加, 也可以使用命令添加.

使用图形用户界面添加搜索路径

对于MATLAB2013及以上版本, 添加搜索路径的按钮在, Home 选项卡下的”Environment”下, 即下图中的Set Path
图2-1 找到 Set Path

打开Set Path对话框, 如下:
图2-2 Set Path 对话框

按照下图所示, 可以添加”DeepLearnToolbox-master”文件夹及其子文件夹到搜索路径.
图2-3 添加"DeepLearnToolbox-master"文件夹及其子文件夹到搜索路径

下图给出了添加后的结果:
图2-4 "DeepLearnToolbox-master"文件夹及其子文件夹到搜索路径的结果

使用命令添加搜索路径

主要使用aadpath, 命令. 下面举例说明几个函数. 假设要添加”D:\Workspace\Matlab\DL\DeepLearnToolbox-master”文件夹及其子文件夹到搜索路径, 其目录结构如下图
图2-2 要添加的文件夹目录结构

addpath即(Add folders to search path), 完成往搜索路径里添加文件的功能. 使用下面的命令仅仅将”DeepLearnToolbox-master”文件夹添加进搜索路径, 并未添加其子文件夹.

addpath('D:\Workspace\Matlab\DL\DeepLearnToolbox-master');

如果想将该路径添加到搜索路径 , 那么可以使用下面的命令

addpath('D:\Workspace\Matlab\DL\DeepLearnToolbox-master','-end');

添加绝对路径

如上图所示, “DeepLearnToolbox-master”文件夹的子文件夹较多, 如果一一列举出来相当麻烦. 所以我们使用genpath自动生成路径, 如下

genpath('D:\Workspace\Matlab\DL\DeepLearnToolbox-master')

结果输出:

ans =

D:\Workspace\Matlab\DL\DeepLearnToolbox-master;D:\Workspace\Matlab\DL\DeepLearnToolbox-master\CAE;D:\Workspace\Matlab\DL\DeepLearnToolbox-master\CNN;D:\Workspace\Matlab\DL\DeepLearnToolbox-master\DBN;D:\Workspace\Matlab\DL\DeepLearnToolbox-master\NN;D:\Workspace\Matlab\DL\DeepLearnToolbox-master\SAE;D:\Workspace\Matlab\DL\DeepLearnToolbox-master\data;D:\Workspace\Matlab\DL\DeepLearnToolbox-master\tests;D:\Workspace\Matlab\DL\DeepLearnToolbox-master\util;

可以看出, genpath命令生成了 “DeepLearnToolbox-master”文件夹及其子文件夹的所有路径.
所以将 “DeepLearnToolbox-master”文件夹及其子文件夹添加到搜索路径的命令是:

addpath(genpath('D:\Workspace\Matlab\DL\DeepLearnToolbox-master'));

这样, 你就可以在任何地方, 访问”DeepLearnToolbox-master”里的任意资源了, 这就是绝对路径的好处.

添加相对路径

也许你看到了 “DeepLearnToolbox-master”文件夹中的”README.md”文件, 是的这是一个使用说明文件, “DeepLearnToolbox-master”是一个MATLAB版工具箱, “README.md”文件就是介绍其功能及使用的. 也许你会看到文件”README.md”里说使用下面的命令添加搜索路径.

addpath(genpath('DeepLearnToolbox'));

是的, 那么会有什么不同呢? 我们把当前工作路径切换到”DL”文件夹下 (注意, 之前我们并没有强调, 那是因为不需要, 但现在需要了, 否则, 下面的命令将返回空, 这是因为MATLAB找不到”DeepLearnToolbox-master”文件夹) , 然后在MATLAB命令窗口输入genpath('DeepLearnToolbox'), 发现返回值是:

ans =

DeepLearnToolbox-master;DeepLearnToolbox-master\CAE;DeepLearnToolbox-master\CNN;DeepLearnToolbox-master\DBN;DeepLearnToolbox-master\NN;DeepLearnToolbox-master\SAE;DeepLearnToolbox-master\data;DeepLearnToolbox-master\tests;DeepLearnToolbox-master\util;

可以看到路径个数一样, 只是”变短了”. 是的, 这是相对路径 (是相对于”DL”文件夹所在路径而言的, 而之前那个是绝对路径), 所以如果访问和使用”DeepLearnToolbox-master”工具包中的任意资源的话, 要把当前工作路径切换到”DL”文件夹下. 比如, 你想运行”DeepLearnToolbox-master”中”tests”下的测试示例, 那么你需要在把当前工作路径切换到”DL”文件夹下(而不是”tests”文件夹下), 否则, 会找不到调用的其它资源.

MATLAB搜索路径的移除

使用MATLAB图形用户界面操作, 很容易移除路径, 这里不介绍. MATLAB也提供了rmpath用于移除搜索路径.下面做一下简介:

移除单个路径

如果仅仅想移除单个路径, 如:”DeepLearnToolbox-master”文件夹.

  • 对于绝对路径, 那么只需输入下面的命令
rmpath('D:\Workspace\Matlab\DL\DeepLearnToolbox-master')
  • 对于相对路径, 那么需输入下面的命令, 否则, 提示找不到.
rmpath('DeepLearnToolbox-master')

移除多个路径

如果想移除多个搜索路径呢, 如:”DeepLearnToolbox-master”文件夹及其子文件夹, 这里依然借助genpath.

  • 对于绝对路径, 那么只需输入下面的命令
rmpath(genpath('D:\Workspace\Matlab\DL\DeepLearnToolbox-master'))
  • 对于相对路径, 那么需输入下面的命令
rmpath(genpath('DeepLearnToolbox-master'))

还有一种方法

修改pathdef.m文件!

到你的MATLAB安装目录中依次找到toolbox -> local -> pathdef.m文件,如下:
pathdef.m

直接删除你不要的路径即可。

这种方法在下面这种情况下很有帮助:当你打开MATLAB窗口时,命令窗口提示一堆Warning,说某某路径不存在或者不是路径(”Warning: Name is nonexistent or not a directory: “),如下图所示:
路径不存在提示

这往往是由于你移动了文件夹或者重命名了文件夹而致(比如我删除了sd显著性检测文件夹),而这个时候你打开Set PathHome -> Set Path)窗口并没有看到这些路径,是不是很奇怪,其实不奇怪,路径不存在添加进去也没有,所以就不添加了。

解决办法就是修改上述pathdef.m文件,打开后,你会发现文件里依然保留着那些不存在的路径,删掉即可;当然也可以把文件夹命名回来,或移动回来。

哈哈,就这些吧!


  • 46
    点赞
  • 159
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值