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

"Input argument "handles" is undefined."

 

moongoblin
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 57
Anmeldedatum: 29.10.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.11.2009, 09:16     Titel: "Input argument "handles" is undefined."
  Antworten mit Zitat      
Ich habe eine m-File mit mehreren Funktionen. In einer Funktion werden 3 Variablen (V1, V2, V3) Strings zugeordnet, diese Variableninhalte schreibe ich dann in die handles (handles.V1=V1 etc.) und speichere mit guidata(hObject, handles).

Die Funktion, die diese Variablen wieder aufrufen soll sieht folgendermaßen aus:
Code:

function FILTER (hObject, eventdata, handles)

...
   
   figure('Name',['Frequenzsignale ', handles.V1,'_' handles.V2, '_', handles.V3, ' ,',handles.filename(9:13)])
   subplot (3,1,1), plot (f, abs(fft([handles.(handles.V1)])), 'b'), title ([handles.V1,' ,',handles.filename(9:13)])
   ...
 


Ich bekomme hier aber immer die Fehlermeldung "Input argument "handles" is undefined."
Was läuft falsch?

Danke für eure Hilfe!
Private Nachricht senden Benutzer-Profile anzeigen


Fragewurm
Forum-Century

Forum-Century


Beiträge: 180
Anmeldedatum: 23.09.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.11.2009, 09:20     Titel:
  Antworten mit Zitat      
Hi
übergibst du deiner FCN auch die Handles?
Sonst könntest du auch es mal so Probieren:
Code:

function (hObject,eventdata)
handles= guidata(hObject);
....
 


Gruss Fragewurm
_________________

Fehler jeglicher Art Dienen zur allgemeinen Belustigung
Private Nachricht senden Benutzer-Profile anzeigen
 
moongoblin
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 57
Anmeldedatum: 29.10.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.11.2009, 09:41     Titel:
  Antworten mit Zitat      
Ja, die Übergabe ist vermutlich das Problem, ich verstehs bloß nicht.
Bisher dachte ich, das was ich beim Funktionsaufruf in den runden Klammern stehen habe ist das, was ich übergebe. Und da steht ja handles. Funktioniert das anders?

Wenn ich es so probiere wie von dir vorgeschlagen, dann sagt er mir "Input argument "hObject" is undefined."
Private Nachricht senden Benutzer-Profile anzeigen
 
Fragewurm
Forum-Century

Forum-Century


Beiträge: 180
Anmeldedatum: 23.09.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.11.2009, 09:49     Titel:
  Antworten mit Zitat      
Ne ist schon richtig.
Hast du dein Programm mal debug?
Dann könntest du sehen wo genau der fehler auftritt.
Alternativ könntest du ja mal in der Funktion Filter dir die 'handles' anzeigen lassen. Dort müssten ja deine Variablen drin stehen.
Code:

function Filter(....)
handles   % Einfach handles ohne Semikolon aufrufen
.....
 

_________________

Fehler jeglicher Art Dienen zur allgemeinen Belustigung
Private Nachricht senden Benutzer-Profile anzeigen
 
moongoblin
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 57
Anmeldedatum: 29.10.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.11.2009, 10:32     Titel:
  Antworten mit Zitat      
Hab mir die handles an verschiedenen Stellen anzeigen lassen. In der generierenden Funktion nach dem Speichern ist alles paletti.
In der aufrufenden Funktion FILTER sind sie weg. Problem ist also die Übergabe.
Nochmal ein bisschen mehr Code, vielleicht hilft dir das:
Code:

function pushbutton_leads1_Callback(hObject, eventdata, handles) % diese Funktion generiert die Variablen
...
handles.namelinks=namelinks; % zur Übergabe an Funktion FILTER
handles.namerechts=namerechts;
handles.namefuss=namefuss;
handles.L=L;
handles.R=R;
handles.F=F;
guidata(hObject, handles);

% Auslesen des Status der Checkbox Filter
handles.value_filter1=get(handles.checkbox_filter1, 'Value');
guidata(hObject, handles);

if handles.value_filter1==1 % wenn Filter an
    FILTER % FILTER wird aufgerufen
    return
end
...

function FILTER (hObject, eventdata, handles) % in der Funktion sollen die Variablen aufgerufen werden
% Fouriertransformation
   N=15000;  % Abtastwerte (evt. später einlesen lassen)
   t=30;     % Messzeit in s ( evt. später einlesen lassen)
   fm=500;    % Messfrequenz (evt. später einlesen lassen)
   f=linspace(0,fm,N);
   
   figure('Name',['Frequenzsignale ', handles.namelinks,'_' handles.namerechts, '_', handles.namefuss, ' ,',handles.filename(9:13)]) % Berechnung & Plot der Fouriertransformierten der ausgewählten Kanäle
   subplot (3,1,1), plot (f, abs(fft([handles.(handles.namelinks)])), 'b'), title ([handles.namelinks,' ,',handles.filename(9:13)])
   subplot (3,1,2), plot (f, abs(fft([handles.(handles.namerechts)])), 'g'), title ([handles.namerechts,' ,',handles.filename(9:13)])
   subplot (3,1,3), plot (f, abs(fft([handles.(handles.namefuss)])), 'r'), title ([handles.namefuss, ' ,',handles.filename(9:13)])
   
...
 
Private Nachricht senden Benutzer-Profile anzeigen
 
Fragewurm
Forum-Century

Forum-Century


Beiträge: 180
Anmeldedatum: 23.09.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.11.2009, 10:53     Titel:
  Antworten mit Zitat      
Bei deinem Aufruf FILTER übergibst du ihm doch garkeine Parameter.
Bsp.:
Code:

% Aufruf
var1= 5;
var2= 10;
x= function Test(var1, var2);
....

% Deine FCN
function erg= Test (var1, var2)
erg= var1 + var2;

 


Gruss Fragewurm
_________________

Fehler jeglicher Art Dienen zur allgemeinen Belustigung
Private Nachricht senden Benutzer-Profile anzeigen
 
moongoblin
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 57
Anmeldedatum: 29.10.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.11.2009, 11:52     Titel:
  Antworten mit Zitat      
Ok, Problem gelöst. Danke!
Wusste nicht, dass ich die zu übergebenden Variablen auch beim Aufruf hinschreiben muss, hatte sie nur da stehen wo die Funktion definiert ist. Eigentlich aber natürlich logisch...
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.