我有一系列在MATLAB上编写的实验,但最近我们尝试使用Octave运行它们。我知道它们大部分兼容,但我遇到了一些问题,而所有我找到的在线FAQ或说明都没有解决这些问题。问题有点复杂,因为有多个相互作用的.m文件;然而,现在我只关注主程序。无论如何,当我尝试通过Octave运行该文件(MLP.m)时,在终端窗口中出现以下错误:
error: dir: expecting directory or filename to be a char array
error: called from:
error: /Applications/Octave.app/Contents/Resources/share/octave/3.2.3/m/miscellaneous/dir.m at line 128, column 5
error: /Applications/MATLAB_R2008a/toolbox/psychoacoustics/MLParameters.m at line 86, column 7
error: /Applications/MATLAB_R2008a/toolbox/psychoacoustics/MLP.m at line 9, column 3
它所引用的行如下:
1)
d = dir([cd myslash 'Experiments_MLP' myslash '*.m']);
2)
s = MLParameters;
这些代码行与Octave不兼容吗?我在网上找不到任何表明这些代码无法运行的信息。
然后,终端窗口会给我一堆无用的输出:
dyld: Library not loaded: /usr/X11/lib/libfreetype.6.dylib
Referenced from: /usr/X11R6/lib/libfontconfig.1.dylib
Reason: Incompatible library version: libfontconfig.1.dylib requires version 13.0.0 or later, but libfreetype.6.dylib provides version 10.0.0
dyld: Library not loaded: /usr/X11/lib/libfreetype.6.dylib
Referenced from: /usr/X11R6/lib/libfontconfig.1.dylib
Reason: Incompatible library version: libfontconfig.1.dylib requires version 13.0.0 or later, but libfreetype.6.dylib provides version 10.0.0
/Applications/Gnuplot.app/Contents/Resources/bin/gnuplot: line 71: 1077 Trace/BPT trap GNUTERM="${GNUTERM}" GNUPLOT_HOME="${GNUPLOT_HOME}" PATH="${PATH}" DYLD_LIBRARY_PATH="${DYLD_LIBRARY_PATH}" HOME="${HOME}" GNUHELP="${GNUHELP}" DYLD_FRAMEWORK_PATH="${DYLD_FRAMEWORK_PATH}" GNUPLOT_PS_DIR="${GNUPLOT_PS_DIR}" DISPLAY="${DISPLAY}" GNUPLOT_DRIVER_DIR="${GNUPLOT_DRIVER_DIR}" "${ROOT}/bin/gnuplot-4.2.6" "$@"
/Applications/Gnuplot.app/Contents/Resources/bin/gnuplot: line 71: 1083 Trace/BPT trap GNUTERM="${GNUTERM}" GNUPLOT_HOME="${GNUPLOT_HOME}" PATH="${PATH}" DYLD_LIBRARY_PATH="${DYLD_LIBRARY_PATH}" HOME="${HOME}" GNUHELP="${GNUHELP}" DYLD_FRAMEWORK_PATH="${DYLD_FRAMEWORK_PATH}" GNUPLOT_PS_DIR="${GNUPLOT_PS_DIR}" DISPLAY="${DISPLAY}" GNUPLOT_DRIVER_DIR="${GNUPLOT_DRIVER_DIR}" "${ROOT}/bin/gnuplot-4.2.6" "$@"
error: you must have gnuplot installed to display graphics; if you have gnuplot installed in a non-standard location, see the 'gnuplot_binary' function
我已经安装了GNUPlot,并检查了gnuplot_binary函数,但没有得到任何答案。GNUPlot与Octave本身一起安装在我的/Applications目录中。为什么这不能工作?随GNUPlot一起提供的README文件没有指示特殊的安装目录。那么关于dyld库未加载错误呢?那是否与GNUPlot问题有关,还是其他原因?
无论如何,感谢您的帮助。
cd
和myslash
的内容是什么?还是像 MATLAB 中的filesep
一样是一个函数调用吗? - Amrocd
实际上是一个内置函数(存在于MATLAB和Octave中),用于更改当前目录,并且不返回任何内容。DIR期望其参数为字符串。 - Amro