Hier hast Du ja nur ein Skript, d.h. alle Variablen eta, fr u.s.w. werden im base workspace gespeichert. Du kann da immer drauf zugreifen.
Bei Funktionen (und eine GUI besteht halt aus Funktionen) ist das anders. Da gibt es Variablen immer erstmal nur in der Funktion, in der sie definiert wurden. Siehe 'Extending Variable Scope' in der Hilfe.
Hier noch ein Versuch:
Code:
function formater
h.fig=figure('Position',[500,400,300,100]);
h.btn=uicontrol('style','pushbutton','String','Ok');
h.edit=uicontrol('style','edit','position',[20,50,260,20],'string','0.34876*exp(-fr/161.8177)+0.01809');
%h.fr=evalin('base','fr'); % wenn die Variable fr im Workspace liegt
h.fr=3; % oder sie wird im GUI definiert set(h.btn,'callback',{@cb,h});
function r = cb(hObject,eventdata,h)
str=get(h.edit,'string')
fr=h.fr;
eta=eval(str)
Du musst dieses Programm in einer Datei mit Namen formater.m speichern und ausführen. Dann kommt eine edit-Box in der Du jeden gültigen Matlab-Ausdruck schreiben kannst, auch eine Funktion in Abhängigkeit von fr (welches ich in der Hauptfunktion definiert habe).
Wenn Du Ok drückst wird der Ausdruck ausgewertet.
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.