2

我正在安装一个 MATLAB 工具箱,它通过调用来查找文件

which

当我输入

which filename 

在 bash 中,我得到

/usr/local/bin/filename. 

which('filename')

在 MATLAB 命令窗口中说

'filename' not found. 

我可以看到二进制文件在

/usr/local/bin.

还,

/usr/local/bin

被添加到 MATLAB 搜索路径中,所以我不确定这里发生了什么。有什么建议么??

谢谢!!阿耶莎

4

2 回答 2

1

您可以在此处使用 exists 而不是 which。如果文件在那里,exist 将返回代码 2。

但是,这确实有效。例如,我的搜索路径中有一个 .pdf 文件:

>> which('Fritsch FN - Monontone piecewise cubic interpolation')
'Fritsch FN - Monontone piecewise cubic interpolation' not found.

查看无法找到它的内容,但是当我提供全名(包括扩展名)时,它可以正常工作。

>> which('Fritsch FN - Monontone piecewise cubic interpolation.pdf')
/Users/woodchips/Desktop/Fritsch FN - Monontone piecewise cubic interpolation.pdf

当然,也有作品。

>> exist('Fritsch FN - Monontone piecewise cubic interpolation.pdf','file')
ans =
     2

我的猜测是,您的问题出现是因为您未能包含扩展名。根据文档,这显然会自动查找 .m、.p 和 .mdl 文件。

于 2012-05-11T18:43:39.653 回答
1

bashwhich仅在 Linux 路径中定位可执行文件。MATLABwhich命令仅定位 MATLAB 文件(*.m*.pMDL 文件,根据命令的MATLAB文档which)。MATLABwhich不会定位其他二进制文件。在大多数情况下,如果文件以or命名并且其目录位于 Linux 路径和 MATLAB 路径中,则可以同时使用 bashwhich和 MATLAB来定位文件。which*.m*.p

我假设你有filename/usr/local/bin/但没有filename.m。问题也可能是您的路径filename.m不在您的 MATLAB 路径中。使用path命令检查和修改您的 MATLAB 路径,或使用菜单:文件 -> 设置路径。

因此,如果which在某些 MATLAB 工具箱的安装脚本或安装函数(MATLAB 程序)中使用了命令,则它正在寻找 MATLAB 程序文件,filename.m或者filename.p,而不是常规的 Linux 二进制文件filename

于 2012-05-11T18:30:13.523 回答