【问题标题】:Matlab and addpathMatlab 和 addpath
【发布时间】:2012-03-16 08:08:16
【问题描述】:

我最近一直在使用 Matlab。我的问题源于我几个月的使用,我似乎无法解决。我有一个外部 SVM 工具箱 (OSU-SVM),我想与我的项目进行交互。当我手动添加工具箱的路径(右键单击 -> 添加到路径 -> 选定的文件夹和子文件夹)时,我能够让整个系统工作。我想做的是在脚本中添加文件夹。我已经尝试过“addpath”命令,但由于某种原因,我无法找到相对于我从中运行命令的 m 文件(脚本)的库。以下是代码示例:

% Add OSU SVM system
addpath(genpath('./osu-svm/'));

我想使用相对文件夹将路径添加到 M 文件的原因是代码需要在不会安装工具箱的不同环境中运行。该代码还将在与我正在开发的操作系统不同的操作系统中执行。也就是说,我正在运行一个 Windows Matlab 来开发代码,并且需要在 Linux 机器上运行完成的系统。运行我的文件的过程需要尽可能轻松,并且不需要用户的太多输入。这就是为什么我特别试图避免手动添加路径的原因。

另一方面,当我希望通过相对路径使用“uigetfile”时,会出现类似的问题。我相信我缺少一些东西可以帮助我同时解决这两个问题。任何帮助将不胜感激。

【问题讨论】:

    标签: matlab


    【解决方案1】:

    不要单独使用'./osu-svm/'

    fullfile('.','osu-svm')
    

    它在 Windows 上对您不起作用的原因是您使用了正斜杠文件分隔符。完整文件将为每个操作系统生成一个包含正确文件分隔符的文件字符串。

    matlab 文档中的 genpath 示例也使用了 fullfile http://www.mathworks.co.uk/help/techdoc/ref/genpath.html

    此外,“。”有点不必要,因为它只是意味着“相对于当前目录”并且可以被排除在命令之外。也许您的意思是向上一个目录?

    '..'
    

    ???

    【讨论】:

    • 感谢这工作。我习惯用“。”明确表示正在使用当前文件夹。
    猜你喜欢
    • 2014-02-28
    • 1970-01-01
    • 2012-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-04
    • 1970-01-01
    相关资源
    最近更新 更多