MATLAB 使用!使用自定义路径运行程序

标签 matlab path directory

我想运行这行代码。它将在我的计算机上运行 PyMOL,$PATH 是一个变量,用于保存正在运行的程序的当前目录。

 pdbpath = [mfilename('fullpath'), '1AKI.pdb']
 setenv('PATH', pdbpath)
 !//Applications/MacPyMOL.app/Contents/MacOS/MacPyMOL $PATH

这不起作用; PyMOL 将运行,但将输入逐字记录为 $PATH,而不是 $PATH 设置的内容,因为 !在MATLAB中似乎是一个特殊的东西。如何在 MATLAB 中打开具有可自定义路径的程序?

编辑:另外,我如何处理路径中的空格?由于路径未知(这就是我首先编写此内容的原因),它可能具有“程序文件”,这对命令行输入不利。

最佳答案

您真的需要将 PATH 变量作为环境变量吗?通常,已经有一个,您现在可以覆盖......

如果没有,

pdbpath = ['"' fileparts(mfilename('fullpath')), '1AKI.pdb"']
system(['//Applications/MacPyMOL.app/Contents/MacOS/MacPyMOL ' pdbpath]);

如果是,

setenv('PATH', ['"' fileparts(mfilename('fullpath')), '1AKI.pdb"']);
system(['//Applications/MacPyMOL.app/Contents/MacOS/MacPyMOL ' getenv('PATH')]);

路径和文件名中的空格的处理方式与系统命令行相同(即与 MATLAB 无关)。我在 pdbpath 变量的定义中添加了引号,这在 Windows、Mac 和 *nix 上都应该可以解决问题。

另一种选择是转义所有空格 ('\'),就像 Divakar 所做的那样,但这仅适用于 *nix 系统 AFAIK, 仅适用于空格...路径上可能还有其他“不方便”的字符,你知道:)

关于MATLAB 使用!使用自定义路径运行程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22396259/

相关文章:

matlab - 为大 x 计算 4^x mod 2π

powershell - 使用PowerShell获取流程位置路径

javascript - SVG 对象跟随路径

php - 使用 .htaccess 将子目录设置为根目录

matlab - 在Matlab中将LFO应用于信号

macos - MATLAB:如何显示从文件中读取的 UTF-8 编码文本?

java - 在没有 for 循环的 Java 中乘法数组

python - Virtualenv 包含全局包/如何清除我的 PYTHONPATH?

r - 为什么 R 在文件路径中使用正斜杠 (/) 而不是反斜杠 (\)

c# - 使用 C# 和 .NET 2.0 创建顺序文件夹名称?