Tengo una serie de experimentos en los que fueron escritos para MATLAB, pero recientemente estamos tratando de ejecutar a través de Octava vez. Me doy cuenta de que la mayoría son compatibles, pero he estado corriendo en un par de problemas, y ninguno de la línea de preguntas frecuentes o las direcciones que he encontrado han abordado estas en todo. Es complicado un poco porque hay varios .m archivos que interactúan; sin embargo, por ahora me voy a centrar en el programa principal. De todos modos, así que cuando intento ejecutar el archivo (MLP.m) a través de la octava, me da los siguientes errores en la ventana de Terminal:

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

La línea de lo que se está haciendo referencia es la siguiente:

1)

d = dir([cd myslash 'Experiments_MLP'  myslash '*.m']);

2)

s = MLParameters; 

Lo que sobre estas líneas, es incompatible con la Octava? No puedo encontrar nada en internet que indica que estos no funcionan.

Después de eso, la ventana de la Terminal me da este lote de tonterías:

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

He GNUPlot instalado, y he comprobado el gnuplot_binary función, que no me da ninguna respuesta. GNUPlot es instalado en mi /directorio de Aplicaciones, junto con la Octava de la misma. Por qué no a este trabajo? El archivo README que viene con GNUPlot no indicar un directorio especial para ser instalado en. ¿Qué pasa con los dyld biblioteca no se cargan los errores? Es el relacionado con el programa GNUPlot problema, o es algo más?

De todos modos, gracias por tu ayuda

  • ¿cuál es el contenido de estas variables: cd y myslash? o es una llamada a una función como filesep en MATLAB?
  • cd es simplemente el comando para llamar a un directorio. Myslash es sólo una variable que hace que el programa funciona tanto en PC y Mac. Se establece así, en un PC, las rutas de directorio usar ‘\’, y ‘/’ en un Mac.
  • cd es en realidad una función integrada (existen tanto en MATLAB y Octave) para cambiar el directorio actual, y no devuelve nada. DIR espera un string como argumento..
  • Así es el ‘myslash’ causando el problema? Necesito cambiar esto: ‘[cd myslash ‘Experiments_MLP’ myslash ‘*.m’]’ normalidad de la ruta de acceso del directorio por lo que se tendrá en cuenta como una cadena de caracteres?
InformationsquelleAutor Billy | 2011-08-24

2 Comentarios

  1. 1

    Abordar su primer error, es más fácil de explicar con un ejemplo:

    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

    También podría haber construido la ruta de acceso mediante la concatenación de cadenas a ti mismo:

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

    Anteriormente deben trabajar para MATLAB y Octave

Dejar respuesta

Please enter your comment!
Please enter your name here