GUI auf anderem PC oder Verzeichnis starten funkt. nicht
KingKarl
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 15.03.2010, 16:02
Titel: GUI auf anderem PC oder Verzeichnis starten funkt. nicht
Hallo zusammen,
ich brauche dringend eure Hilfe. Ich arbeite derzeit an einer GUI. Ich öffne den Guide und öffne dort meine fig und alles funktioniert. Kopiere ich die Daten in ein anderes Verzeichnis oder auf einen anderen PC funktioniert die GUI nicht mehr. Er bringt mir an dieser Stelle dann folgendes:
Ich wähle mehrere Bilder aus und schreibe in die eine Variable:
inputFileNames = get(handles.listbox,'String');
hier kommt dann:
filename =
'2.bmp' '3.bmp' '4.bmp' '5.bmp' '6.bmp'
pathname =
C:\Programme\MATLAB701\work\
??? Attempt to reference field of non-structure array.
Error in ==> gui_mtf>button_imagesource_Callback at 116
inputFileNames = get(handles.listbox,'String');
Error in ==> gui_mainfcn at 75
feval(varargin{:});
Error in ==> gui_mtf at 44
gui_mainfcn(gui_State, varargin{:});
??? Error while evaluating uicontrol Callback.
Wenn ich über den Guide an meinem PC starte funktioniert das komischerweise.
Ich hoffe es kann mir jemand helfen, da ich etwas in Zeitbedrängnis komme... :-/
kann man schwer beantworten, kannst du eventuell deine Daten fig-file und dazu gehörige m-file posten?
Und wenn du über Konsole bei dir auf Rechner startest, was dann?
Oder Moment Mal, wie startest du es auf anderen Rechner?
(Beschreibe bitte dein Vorgang)
Vielleicht hast du zwei Versionen von m-file oder fig-file und du kopierst die falsche?
das Problem liegt vermutlich in den Pfaden.
Du lädst ja anscheinend Bilder. Liegen diese Bilder im selben Verzeichnis, oder in welchem? Am sichersten dürfte hier die Angabe absoluter Pfade sein (C:\bla1\bla2\image.jpg).
Bitte auch die GUI immer starten, indem man die zugehörige .m - Datei laufen lässt.
Wenn das nicht hilft, kann ich mich nur Denny anschließen: bitte mehr Code.
Grüße,
Harald
KingKarl
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 16.03.2010, 08:14
Titel:
Ich habe nur ein m-file und nur ein fig-file. Das falsche kann ich nicht kopiert haben. Absolute Pfadnamen habe ich auch nicht. Ich dachte es sollte ausreichen wenn die Bilder immer im gleichen Ordner wie die Matlab Dateien liegen. Meine Files will ich nur ungern verschicken, da ich hier grad an meiner Diplomarbeit arbeite und das will ich nicht grad im Netz stehen haben bevors fertig ist Ich probiere aber das mit den Pfadnamen noch. Vielleicht hat ja jemand noch einen anderen Tipp.
Wie bereits beschrieben, wenn ich in Matlab den Guide öffne und dann bei open existing guis meine GUI wähle funktioniert alles perfekt. Wenn ich im Workspace die Figure doppelklicke bzw. das auf einem anderen PC oder Ordner versuche dann gehts nicht mehr und der oben gezeigte Fehler erscheint.
Vielen Dank für die Tipps!!!
King Karl
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 16.03.2010, 08:17
Titel:
Das unten ist die Funktion die schon Probleme macht. Bei der letzten Zeile erscheint der Fehler...
Code:
function button_imagesource_Callback(hObject, eventdata, handles)
wenn ich die GUI ohne den Guide starte, dann springt er mir nicht in die Funktion:
Code:
function gui_mtf_OpeningFcn(hObject, eventdata, handles, varargin) % This function has no output args, see OutputFcn. % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % varargin command line arguments to gui_mtf (see VARARGIN)
% Choose default command line output for gui_mtf
handles.output = hObject;
hier wird nämlich die handles Struktur definiert. Da er hier nicht reinspringt, kennt er die Struktur auch nicht und meckert dann wenn man auf die zugreifen will....
das ist etwas merkwürdig.
Mein Eindruck aus der ursprünglichen Fehlermeldung [??? Attempt to reference field of non-structure array.] ist, dass deine Handles-Struktur aus irgendwelchen Gründen zerschossen wird.
Empfehlung: setze einen Haltepunkt und lass die GUI im anderen Verzeichnis laufen. Dann schau dir genau an, was mit deiner handles-Struktur passiert.
Wenn diese Daten später noch verfügbar sein sollen, ist ein Aufruf von guidata zum Updaten der handles-Struktur notwendig.
Zur Opening Function: das kommt mir erst mal merkwürdig vor. Stelle mal in GUIDE sicher, dass die Eigenschaft Opening Function richtig gesetzt ist. Ansonsten sollte beim Klicken auf das grüne Dreieck in GUIDE dasselbe passieren wie beim Ausführen der MATLAB-Datei (vorausgesetzt beide wurden gespeichert / sind auf demselben Stand).
Wie bereits beschrieben, wenn ich in Matlab den Guide öffne und dann bei open existing guis meine GUI wähle funktioniert alles perfekt. Wenn ich im Workspace die Figure doppelklicke bzw. das auf einem anderen PC oder Ordner versuche dann gehts nicht mehr und der oben gezeigte Fehler erscheint.
Ich denke genau hier liegt dein Problem, du sollst nicht fig-File anklicken, sondern m-file. Oder noch besser in der Konsole den Namen deiner Progamm ohne Extention schreiben.
Wenn du fig-file doppelklickst, dann wird open/openfig Funktion ausgeführt, und keine handles-Variablen initialisiert.
M-File muss ausgeführt werden, damit OpeningFcn ausgeführt werden kann und handles initialisiert werden können. Sonst liefert guidata leeres handles zurück
In GUIDE führt der Ausführungsbutton auch M-File.(wenn du M-file verschiebst erzeugt GUIDE automatisch wieder neuen M-File)
??? Attempt to reference field of non-structure array.
Error in ==> gui_mtf>button_imagesource_Callback at 116
inputFileNames = get(handles.listbox,'String');
KingKarl
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 16.03.2010, 13:02
Titel:
Super!!! Das war das Problem. Nun funktioniert es aus jedem Ordner. Ich dachte dieser Guide ruft das M-File auf, wenn ich auf Play drücke. Aber nun weiß ich bescheid!!! Vielen vielen Dank!!!!!
Einstellungen und Berechtigungen
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.