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

Attempt to reference field of non-structure array.

 

muellerschneider
Forum-Anfänger

Forum-Anfänger


Beiträge: 16
Anmeldedatum: 01.11.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.11.2013, 16:55     Titel: Attempt to reference field of non-structure array.
  Antworten mit Zitat      
hi,
ich habe ein Problem beim ausführen meines Programmes über das Command Window. Wenn ich es Zeile für zeile implementiert wird (run im m file) funktioniert es.

Code:

function uipanel10_SelectionChangeFcn(hObject, eventdata, handles)
   %Zusammenfassen von Checkboxen
    hButtons = [handles.ll1, handles.ll2, handles.ll3, handles.ll4, handles.ll5,
    handles.l1, handles.l2, handles.l3, handles.l4, handles.l5,
    handles.r1, handles.r2, handles.r3, handles.r4, handles.r5,
    handles.rr1, handles.rr2, handles.rr3, handles.rr4, handles.rr5];

abfrage der drei Radiobuttons
if hObject == handles.normalbutton
    setappdata(handles.normalbutton,'a',1)
    setappdata(handles.expliziteauswahlbutton,'b',0)
    setappdata(handles.kalibrierungbutton,'c',0)
   
   
   
    set(handles.edit1,'Enable','on');
    set(handles.status,'String','Normalbetrieb')
   
else
   
    set(handles.edit1,'Enable','off');
   
   
   
end

if hObject == handles.expliziteauswahlbutton
   
    setappdata(handles.normalbutton,'a',0)
    setappdata(handles.expliziteauswahlbutton,'b',1)
    setappdata(handles.kalibrierungbutton,'c',0)
   
   
    %set(handles.expliziteeingabepanel,'Visible','on');
   
    set(hButtons, 'Enable','on');
    set(handles.status,'String','Massen einzeln auswählbar')
   
else
   
    %set(handles.expliziteeingabepanel,'Visible','off');
    set(hButtons, 'Enable','off');
   
   
end

if hObject == handles.kalibrierungbutton
   
    setappdata(handles.normalbutton,'a',0)
    setappdata(handles.expliziteauswahlbutton,'b',0)
    setappdata(handles.kalibrierungbutton,'c',1)
   
    set(handles.status,'String','Kalibrierung')
   
end

% Alle Checkboxen löschen
set(hButtons,'Value',0);

%Edit field zurücksetzen
set(handles.edit1,'String','Hier eingeben');
 


Der komplette fehler sieht so aus:

Attempt to reference field of non-structure array.

Error in ba>uipanel10_SelectionChangeFcn (line 116)
hButtons = [handles.ll1, handles.ll2, handles.ll3, handles.ll4, handles.ll5,

Error in gui_mainfcn (line 96)
feval(varargin{:});

Error in ba (line 42)
gui_mainfcn(gui_State, varargin{:});

Error in
@(hObject,eventdata)ba('uipanel10_SelectionChangeFcn',get(hObject,'SelectedObject'),eventdata,guidata(get(hObject,'SelectedObject')))


Error in hgfeval (line 63)
feval(fcn{1},varargin{:},fcn{2:end});

Error in uitools.uibuttongroup/childAddedCbk>manageButtons (line 79)
hgfeval(cbk, source, evdata);

Error while evaluating uicontrol Callback


Er tritt in Zeile 116 das erste mal auf. Das ist die Zeile, wo die Checkboxen zusammengefasst werde. Wenn ich das Programm debugge und zu der Zeit in den Workspace schaue, liefert mir das Programm drei Variablen: eventdata mit Value <1x1 struct>; hObject mit Value 3.0026 und handles mit einer leeren Menge.

Kann mir jemand helfen??
Private Nachricht senden Benutzer-Profile anzeigen


Bibonaut
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 60
Anmeldedatum: 06.06.13
Wohnort: Berlin
Version: 2013a
     Beitrag Verfasst am: 05.11.2013, 17:10     Titel:
  Antworten mit Zitat      
Hallo,

kannst du diese Zeile etwas aufschlüsseln?

Code:

Error in
@(hObject,eventdata)ba('uipanel10_SelectionChangeFcn',get(hObject,'SelectedObject'),eventdata,guidata(get(hObject,'SelectedObject')))
 


Ich würde jetzt behaupten, dass der Fehler an der Übergabe liegt. Ich verstehe nur leider kein bisschen von der Zeile Wink

Bei mir sieht das meistens eher so aus:
@(hObject,eventdata) myfun (hObject,eventdata,...)

Viele Grüße!
Alex
Private Nachricht senden Benutzer-Profile anzeigen
 
muellerschneider
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 16
Anmeldedatum: 01.11.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.11.2013, 02:05     Titel:
  Antworten mit Zitat      
hi,
ich habe das Problem mal vereinfacht, da es sonst sehr schwer ist. Also: ich habe zwei radiobuttons in einem Uipanel. Zusätzlich einen pushbutton. Nun soll der Pushbutton abhängig von der Auswahl eine msgbox ausgeben.
Mein Code sieht so aus:
Erst wird der Radiobutton ermittelt und gespeichert


Code:
function uipanel1_SelectionChangeFcn(hObject, eventdata, handles)
if hObject == handles.radiobutton1
   
    setappdata(handles.radiobutton1,'a',1)
    setappdata(handles.radiobutton2,'b',0)
   
   
elseif hObject == handles.radiobutton2
   
   
    setappdata(handles.radiobutton1,'a',0)
    setappdata(handles.radiobutton2,'b',1)
   
end




Danach mit getappdata die Daten geholt und die Ausgabe erledigt.


Code:
function pushbutton1_Callback(hObject, eventdata, handles)

a=getappdata(handles.radiobutton1,'a');
b=getappdata(handles.radiobutton2,'b');

if a==1
   
    msgbox ('first button')
   
else if b==1
       
        msgbox('second button')
       
    end
   
end




Der Fehler bleibt der Gleiche:
Code:

Code:
Attempt to reference field of
non-structure array.

Error in
untitled>uipanel1_SelectionChangeFcn
(line 105)
if hObject == handles.radiobutton1

Error in gui_mainfcn (line 96)
         feval(varargin{:});

Error in untitled (line 42)
    gui_mainfcn(gui_State, varargin{:});

Error in
@(hObject,eventdata)untitled('uipanel1_SelectionChangeFcn',get(hObject,'SelectedObject'),eventdata,guidata(get(hObject,'SelectedObject')))


Error in hgfeval (line 63)
        feval(fcn{1},varargin{:},fcn{2:end});
       
Error in
uitools.uibuttongroup/childAddedCbk>manageButtons
(line 79)
    hgfeval(cbk, source, evdata);
 
Error while evaluating uicontrol Callback
 



Ich hoffe jetzt ist es einfacher zu verstehen und jemand kann mir helfen. So wie es aussieht hängt es ja an der Übergabe. Den Error konnte ich leider nicht verkleinern. Vielen dank schonmal
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: 07.11.2013, 08:40     Titel:
  Antworten mit Zitat      
Hallo,

am gegebenen Code sehe ich kein Problem.

Bitte die komplette GUI (.m + .fig) anhängen.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
muellerschneider
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 16
Anmeldedatum: 01.11.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.11.2013, 12:13     Titel:
  Antworten mit Zitat      
das wäre dann das hier:
vereinfachte Version

untitled.m
 Beschreibung:

Download
 Dateiname:  untitled.m
 Dateigröße:  3.98 KB
 Heruntergeladen:  444 mal
untitled.fig
 Beschreibung:

Download
 Dateiname:  untitled.fig
 Dateigröße:  2.63 KB
 Heruntergeladen:  458 mal
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: 07.11.2013, 12:41     Titel:
  Antworten mit Zitat      
Hallo,

bei mir kommt mit deiner GUI keine Fehlermeldung.

Dir ist klar, dass man die GUI über die .m-Datei starten muss, nicht über die .fig-Datei?

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
muellerschneider
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 16
Anmeldedatum: 01.11.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.11.2013, 14:12     Titel:
  Antworten mit Zitat      
och nöööö oder. Das heißt übers
Zitat:
command window starten
heißt einfach nur den namen deines programms in das window eingeben?

Und ich krebs hier Tage lang rum Rolling Eyes Laughing Laughing Laughing

Tausend Dank Tag ist gerettet Smile
Private Nachricht senden Benutzer-Profile anzeigen
 
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 - 2024 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.