Verfasst am: 30.11.2011, 20:02
Titel: Programm-Variable in GUI laden und manipulieren
Ich möchte in mein GUI (mit Guide gemacht) eine Variable aus einem externen Programm direkt laden, und diese Variable dann manipulieren. Ich komme nicht weiter.
Nach dem Motto
Code:
load(filename, var1)% Variable var1 aus filename ins Gui laden
handles.var1 = a % die Variable a global machen, um mit ihr arbeiten zu können.
und jetzt könnte ich die Variable a manipulieren. Das mit dem "load" ist Mist, ich weiss. Ich möchte einfach nur verdeutlichen, was ich ungefähr machen möchte.
Vielen lieben Dank schon im voraus!
Ich bekomme die Variable aus dem externen Programm im GUI nicht extrahiert. Mein Programm heisst z.B. glaze. Darin ist die Anfangsgeschwindigkeit u0 initiiert. Dieses u0 will ich im GUI laden und anschließend manipulieren (um es danach wieder an das externe Programm zurückzugeben und mittels dem GUI dann mit der neuen Anfangsbedingung laufen zu lassen)
Ich schaffe es nicht, dass ich einfach das u0 erhalte. Das ist wahrscheinlich so billig, dass Du fragst, wo das Problem liegt. Aber ich finde nichts...
ich habe im gui einen slider und einen pushbutton. mit dem slider stelle ich den wert meiner geschwindigkeit u0 ein. beim pushbutton übernehme ich den wert und gebe ihn an das programm weiter.
bei dem programm ist dann wichtig, dass das programm nicht nur glaze heisst, sondern in diesem fall glaze(u0), damit gewusst wird, dass u0 übergeben wird. u0 muss im programm dann selber auskommentiert werden.
Code:
% --- Executes on slider movement. function sliderVelocity_Callback(hObject, eventdata, handles) % hObject handle to sliderVelocity (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,'Value') returns position of slider % get(hObject,'Min') and get(hObject,'Max') to determine range of slider
sliderValue=get(handles.sliderVelocity,'Value');
y=round(sliderValue/50)*50; % kannst du auch weglassen. ist dafür gedacht, dass man nur einen diskreten wert schieben kann. set(handles.sliderVelocity,'Value', y);
% hier wird mit dem Pushbutton der Wert des Sliders für u0 übernommen und an das Programm glaze weitergegeben und dann gestartet.
function pushbutton_Programm_laufen_lassen_Callback(hObject, eventdata, handles) % hObject handle to pushbuttonProgramm_laufen_lassen (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)%
cla% setzt die Figure immer wieder auf Null
glaze(get(handles.sliderVelocity,'value'))% glaze heisst das programm, dem hier der wert vom slider Geschwindigkeit durch den tag des sliders übergeben wird. den tag habe ich im prperty inspector auf sliderVelocity benannt.
hast du mehr als eine variable musst du die reihenfolge einhalten.
hast du z.b. geschwindigkeit und radius muss es bei der pushbuttonübergabe so lauten:
im programm glaze dementsprechend glaze(u0,r0) und nicht glaze(r0,u0)
Einstellungen und Berechtigungen
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.