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

Variable wird nicht gefunden

 

snowtim
Forum-Anfänger

Forum-Anfänger


Beiträge: 49
Anmeldedatum: 31.03.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.06.2008, 13:28     Titel: Variable wird nicht gefunden
  Antworten mit Zitat      
Hallo alle zusammen ich bin gerade fast am durchdrehn, und brauch deshalb mal schnell wieder hilfe will ja fußball schauen heute abend.
Also:
ich habe in meinem Gui einen Push-Button der mir beim Drücken ein m.file starten soll. Doch ich bekomme folgende Fehlermeldung:
    ??? Undefined function or variable 'EFDn'.

    Error in ==> neuen_Parametersatz_laden at 26
    VBATTAS = 1.6*EFDn; % Tension batterie d'assistance excitation (V)

    Error in ==> EinAus>Parameter_calculation_Callback at 237
    neuen_Parametersatz_laden %Berchnet
    die übrigen Werte der neuen Parameter

    Error in ==> gui_mainfcn at 96
    feval(varargin{:});

    Error in ==> EinAus at 17
    gui_mainfcn(gui_State, varargin{:});

    ??? Error while evaluating uicontrol Callback


VBATTAS = 1.6*EFDn; % Tension batterie d'assistance excitation (V)
dies ist die aller erste Zeile in meinem m.file der geöffnet werden soll. Doch die Variable EFDn ist im Workspace vorhanden und wenn ich den m.file über das Command window ausführe bekomme ich auch keine Fehlermeldung und er macht das was er soll.
Hoffe ihr könnt mir hierbei helfen.
Schon mal Danke

ciao tim
Private Nachricht senden Benutzer-Profile anzeigen


outsider
Forum-Meister

Forum-Meister


Beiträge: 806
Anmeldedatum: 03.09.07
Wohnort: München
Version: R2012b
     Beitrag Verfasst am: 25.06.2008, 14:10     Titel:
  Antworten mit Zitat      
offensichtlich ist Dein M-File ein Script und keine Funktion. Wenn Du die aus dem Command Windows startest, dann greift die selbstverst#ndlich auf den Workspace! Aber wenn Du die aus der GUI startest, bzw. aus dem Callback dann greift die nur auf den Workspace des Callbacks zu. Diese Variable ist offensichtlich dort nicht vorhanden und der Script liefert ein Fehler. Versuche erstmal diese Variable aus dem Workspace zu laden und zwar mit:

Code:
EFDn = EVALIN('base','EFDn')
% erst jetzt den M-File aufrufen


Wenn Du mich fragst ob das ganze gut ist - sage ich Dir gleich dass ich davon überhaupt nichts halte. Das ganze ist weder robust noch elegant, aber es reicht zumindest als Lösung wenn Du mit relativ gutem Gewissen das Fussbalspiel zuschauen willst! Wink


MfG
Private Nachricht senden Benutzer-Profile anzeigen
 
snowtim
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 49
Anmeldedatum: 31.03.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.06.2008, 08:44     Titel:
  Antworten mit Zitat      
hi danke für die hilfe. glaube da hätte ich noch länger gebraucht bis ich darauf gekommen wäre. so konnte ich dann doch noch das spiel schauen, was sich ja auch gelohnt hat. Very Happy

gruß tim
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast87

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.11.2009, 13:11     Titel:
  Antworten mit Zitat      
Hallo,
da ich gerade an einem ähnlichen Problem hänge, würde mich interessieren wie man das oben genannte Problem eleganter lösen könnte.
Vielen Dank für Eure Hilfe
 
Fragewurm
Forum-Century

Forum-Century


Beiträge: 180
Anmeldedatum: 23.09.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.11.2009, 13:18     Titel:
  Antworten mit Zitat      
Hi
Dann solltest du dein Problem schildern sonst kann Dir hier keiner Helfen.

Gruss Fragewurm
_________________

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

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.11.2009, 13:25     Titel:
  Antworten mit Zitat      
Hallo,
Ich habe ein GUI. über verschiedene Callbacks lese ich Werte ein. Beim drücken eines Push-Buttons soll dann ein Script durchlaufen werden, welche die vorher ermittelten Werte benötigt. Meine Frage ist: Wie schaffe ich es die Variablen so zu übertragen, dass das Script beim Drücken des Push-Buttons darauf zugreifen kann?
Vielen Dank für Eure Hilfe
Gruß David
 
Fragewurm
Forum-Century

Forum-Century


Beiträge: 180
Anmeldedatum: 23.09.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.11.2009, 13:34     Titel:
  Antworten mit Zitat      
Das müsste zB. mit 'handle' gehen.
Wenn du C kennst kannst du es ansatzweise mit pointern vergleichen.

kleines Bsp.:
Code:

% in der GUI
...
h.var=[1,2,3];
...
%Struktur Speichern
guidata(GUINAME,h)

% in einer Funktion
function beispiel(hObject,eventdata)
h= guidata(hObject); % handle laden
x= h.var(2); % x hat nun den Wert 2
 



Hoffe das es Dir weiter hilft.

Gruss Fragewurm
_________________

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

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.11.2009, 14:18     Titel:
  Antworten mit Zitat      
Hey,
danke für deine Hilfe. Leider klappt es immer noch nicht Crying or Very sad . bin anscheinend zu blöd. Hier mein code in ausschnitten:
Code:
function zahl1_Callback(hObject, eventdata, handles)
% hObject    handle to zahl1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of zahl1 as text
%        str2double(get(hObject,'String')) returns contents of zahl1 as a double
zahl1_eingabe=str2num(get(hObject,'String'));
h.zahl1=zahl1_eingabe;
guidata(addition,h)



Code:
function zahl2_Callback(hObject, eventdata, handles)
% hObject    handle to zahl2 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of zahl2 as text
%        str2double(get(hObject,'String')) returns contents of zahl2 as a double
zahl2_eingabe=str2num(get(hObject,'String'));
h.zahl2=zahl2_eingabe;
guidata(addition,h)

 
Code:
% --- Executes on button press in rechnen.
function rechnen_Callback(hObject, eventdata, handles)
% hObject    handle to rechnen (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
h=guidata(hObject)
zahl_1=h.zahl1
zahl_2=h.zahl2
ergebnis=zahl_1 + zahl_2

 
 
tompie
Forum-Guru

Forum-Guru


Beiträge: 260
Anmeldedatum: 19.09.07
Wohnort: München
Version: immer alles
     Beitrag Verfasst am: 18.11.2009, 14:48     Titel:
  Antworten mit Zitat      
Hallo,

probier mal

Code:


statt

Code:


in zahl1_Callback und zahl2_Callback.

Gruß tompie

P.S. Bitte das nächste Mal die Matlab-Fehlermeldungen mitschicken, falls vorhanden.
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast87

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.11.2009, 14:56     Titel:
  Antworten mit Zitat      
Hey,
hab ich probiert, allerdings ohne Erfolg. Es erscheint folgende Fehlermeldung:

??? Reference to non-existent field 'zahl1'.

Error in ==> addition>rechnen_Callback at 133
zahl_1=h.zahl1

Error in ==> gui_mainfcn at 96
feval(varargin{:});

Error in ==> addition at 42
gui_mainfcn(gui_State, varargin{:});

??? Error while evaluating uicontrol Callback
 
LittleX
Forum-Guru

Forum-Guru


Beiträge: 494
Anmeldedatum: 14.05.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.11.2009, 15:43     Titel:
  Antworten mit Zitat      
Hallo,

es sieht so aus als ob Du guide zum erstellen der GUI verwendest.
In diesem Fall solltest Du keine andere Variable in guidata speichern.
Stattdessen kannst Du zur bestehenden Variable handles noch weitere Felder hinzufügen.
Du schreibst also
Code:

handles.zahl1=zahl1_eingabe;
guidata(hObject,handles)
 


Viele Grüße,

LittleX
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast87

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.11.2009, 15:08     Titel:
  Antworten mit Zitat      
Hey,
vielen Dank für deine Hilfe. Hab das Problem jetzt über handles und getappdata und setappdata gelöst.
Gruß David
 
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.