将MATLAB文件转换为Octave

时间:2011-08-24 15:29:37

标签: matlab octave

我有一系列为MATLAB编写的实验,但最近我们试图通过Octave运行它们。我发现它们大部分兼容,但我遇到了一些问题,我发现的在线常见问题解答或方向都没有解决这些问题。它有点复杂,因为有多个.m文件可以互动;但是,现在我将专注于主程序。无论如何,所以当我尝试通过八度音程运行文件(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问题有关,还是其他问题?

无论如何,谢谢你的帮助

2 个答案:

答案 0 :(得分:3)

我知道你已经解决了你的问题,但如果你有问题,这里有一些关于Matlab和Octave之间差异的基本信息的链接:

答案 1 :(得分:1)

解决您的第一个错误,通过示例更容易解释:

dirName = '/some/path';                       %# base directory
filesPath = fullfile(dirName, 'MLP', '*.m');  %# full path string

d = dir(filesPath);                           %# expand/enumerate files
for i=1:numel(d)
    disp( d(i).name )
end

您也可以自己使用字符串连接构建路径:

%# '/some/path/MLP/*.m'
filesPath = [dirName filesep 'MLP' filesep '*.m'];

以上内容适用于MATLAB和Octave