WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

GUI auf anderem PC oder Verzeichnis starten funkt. nicht

 

KingKarl

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.03.2010, 16:02     Titel: GUI auf anderem PC oder Verzeichnis starten funkt. nicht
  Antworten mit Zitat      
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... :-/


denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 15.03.2010, 16:32     Titel:
  Antworten mit Zitat      
Hallo

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?
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 15.03.2010, 17:48     Titel:
  Antworten mit Zitat      
Hallo,

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
Private Nachricht senden Benutzer-Profile anzeigen
 
KingKarl

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.03.2010, 08:14     Titel:
  Antworten mit Zitat      
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 Smile 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: ---
     Beitrag Verfasst am: 16.03.2010, 08:17     Titel:
  Antworten mit Zitat      
Das unten ist die Funktion die schon Probleme macht. Bei der letzten Zeile erscheint der Fehler...

Code:
function button_imagesource_Callback(hObject, eventdata, handles)

[filename, pathname] = uigetfile({'*.bmp;*.jpg','Graphic Files (*.bmp,*.jpg)';
     '*.bmp','BMP-Files (*.bmp)'; ...
     '*.jpg','JPG-Files (*.jpg)'; ...
     '*.*',  'All Files (*.*)'},'MultiSelect', 'on')
   
    global first;    
    if first == 0
       
        filename = unique(filename); %sort filenames and delete duplicates
        handles.filename = filename;
        handles.pathname = pathname;
        first = 1;
       
    else

        if iscell(filename)
            filename = unique(filename); %sort filenames and delete duplicates
        end
               
    end
   
    if isequal(filename,0) | isequal(pathname,0)
        return;
    end
 
 
   inputFileNames = get(handles.listbox,'String');
 
King Karl

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.03.2010, 08:33     Titel:
  Antworten mit Zitat      
Das Problem ist folgendes:

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;

% Update handles structure
guidata(hObject, handles);
 

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....

Weiß jemand wieso er nicht reinspringt?
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 16.03.2010, 10:26     Titel:
  Antworten mit Zitat      
Hallo,

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.

Hinweis:
Zitat:
handles.filename = filename;
handles.pathname = pathname;


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).

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 16.03.2010, 10:38     Titel:
  Antworten mit Zitat      
KingKarl hat Folgendes geschrieben:

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');
Private Nachricht senden Benutzer-Profile anzeigen
 
KingKarl

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.03.2010, 13:02     Titel:
  Antworten mit Zitat      
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!!!!!
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

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.