2010-11-30 19 views
6

Estoy bastante familiarizado con MATLAB, aunque no tanto con escribir GUI en él. Ahora mi jefe me dio un programa MATLAB con GUI que se desarrolló en una máquina con Windows y se ejecuta allí sin problemas. Lo copié en mi mac (osx 10.6.5 con MATLAB R2009b) usando un dispositivo de memoria USB e intenté trabajar con los archivos en mi computadora.Compatibilidad entre Mac y Windows MATLAB Gui

Al iniciar la GUI, algunas de las devoluciones de llamadas se ejecutan, otras no. Pude abrir el archivo de figura que contiene la GUI en GUIDE, pero no puedo hacer clic en los campos de devolución de llamada en el inspector de propiedades. Además, algunos componentes no se muestran en GUIDE, que son visibles cuando se ejecuta la GUI. Primero sospeché que podría estar dañado por los caracteres cambiados de nueva línea, pero aprendí que los archivos .fig son binarios, por lo que este no debería ser el caso. Abrí el archivo .fig binario con un editor de texto y encontré la línea siguiente ASCII seguido por datos binarios:

MATLAB 5.0 MAT-file, Platform: PCWIN, Created on: Tue Aug 10 17:11:57 2010 

son las interfaces gráficas de usuario creados con MATLAB sistema operativo específico? ¿No sería esto realmente estúpido?

Abrí los archivos en la máquina de Windows nuevamente e intenté exportarlos o guardarlos especificando que quiero que sean compatibles con otros sistemas operativos pero no pude encontrar una opción como esta.

Por supuesto que investigué esto en Google, y me pregunté si realmente no encontraría algo relacionado. Si existe una incompatibilidad, creo que esto se habría discutido, ¿verdad?

¿Alguien sabe o tuvo el mismo problema antes?

+5

Un poco fuera de tema, pero de todos modos, recomiendo escribir la GUI de Matlab programáticamente y no usar GUIDE - - Por supuesto, puede ser demasiado trabajo portarlo si se trata de una GUI complicada ya escrita en GUIDE, pero usted (o su jefe) podría considerarla para la próxima vez. Lo aprendí de la peor manera cuando una GUI (GUÍA) en la que había puesto mucho esfuerzo, se volvió inútil después de que el archivo binario .fig se corrompió de alguna manera. –

+1

MATLAB GUI es Java-Swing GUI y, como tal, debe ser independiente de la plataforma. Además, los archivos .mat (y por lo tanto .fig) son independientes de la plataforma. – Mikhail

+0

¿Hay algún error en la ventana de comandos? Últimamente MATLAB tiene una nueva versión, potencialmente no retrocompatible, cada 6 meses. ¿Estás seguro de que estás usando la misma versión de MATLAB? – Mikhail

Respuesta

1

Hmmm, ok. Bueno, la respuesta es bastante embarazosa, pero aún tiene cierto potencial para aprender de ella. La carpeta que mi jefe me dio contenía una gran cantidad de archivos y figuras con nombres similares, como:

  1. bla1.fig
  2. bla.fig
  3. bla0.fig

el sencillo problema fue, la primera vez que abrí la figura con GUIDE, abrí la figura bla.fig en lugar de bla1.fig. Después de esto, siempre utilicé la función de reapertura de GUIDE y no vi que siempre fuera el archivo incorrecto. esto causó los problemas.

==> lo que no hay incompatibilidad entre Mac y PC, aunque me pregunto por qué la plataforma está escrito en el archivo y luego

==> que podría haber sido un problema con compatibilidad hacia atrás como la figura original se creó con MATLAB 5

==> como @Adrian y @Mikhail señalaron: sería muy útil utilizar un sistema de control de versiones para evitar tener cientos de archivos con números diferentes donde la mayoría de ellos son ya no sirve

+0

Además, 'explicitFunctionNames' son mucho mejor legibles. – Jonas

-1

Parece haber algunas incompatibilidades entre las diferentes plataformas y también entre diferentes versiones, desde mi experiencia (MATLAB 5, 6 y 7) también, he encontrado situaciones similares muchas veces.

No estoy exactamente seguro cuando la GUÍA estuvo disponible con MATLAB - Lo noté por primera vez cuando estaba usando la primera versión de MATLAB 7. (Solía ​​ser muy inestable al principio, pero ahora es muy útil. Por ejemplo, recuerdo vagamente un problema crítico con la versión para estudiantes de MATLAB 7. Tuviste que descargar un parche para hacer que las GUI funcionen.)

¿Su jefe sabe cómo se creó el archivo * .fig y en qué versión de MATLAB? ¿Puedes abrir * .fig en la versión anterior de MATLAB y mostrar la GUI correctamente?

Algunas funciones se han vuelto obsoletas desde la versión anterior de MATLAB que se utilizó para crear la figura, y pueden estar causando un pequeño problema con ella. Si ese es el caso, puede solucionarlo comprobando todos los mensajes de error y advertencia que aparecen en la ventana de comandos (o la consola de MATLAB).

Además, debe poder cargar los archivos * .fig en el lugar de trabajo utilizando el siguiente comando desde la ventana de comandos, suponiendo que los archivos están en la ruta de búsqueda de MATLAB.

your_file.fig carga -MAT

A continuación, debería ver un conjunto de datos de estructura, y ver todas las propiedades de la figura, etc., en esa estructura.

Puede usar la información para crear una figura nueva sin la GUÍA (Entorno de desarrollo GUI/Herramienta).

Te recomiendo que escribas tu propia aplicación GUI. No es tan difícil, con/sin la GUÍA.

Recientemente abrí un sitio con algunos consejos sobre la programación de MATLAB para usuarios principiantes e intermedios, y lo actualicé en mi tiempo libre. Si tiene alguna pregunta específica sobre la construcción de GUI, puedo (o no) poder proporcionar respuestas allí ...

Cuestiones relacionadas