Verfasst am: 29.07.2013, 08:27
Titel: mehrere Simulink modelle mit einer GUI öffnen.
Hallo zusammen,
CIh möchte meinem GUI so umschreiben dass ich wenn auf ein Button klicke ein bestimmtes Modell geöffnet wird, und dem entsprechen wenn ich irgend welche werte da einsetze dann di werden nur für das model übernommen.
Also wie ein Modell geöffnet wird und wie die werte eingesetzt werden kann, kann ich schon machen, aber nur für ein Modell.
Also ich hb das mit radio Button so gemacht.
Code:
function Bone_SelectionChangeFcn(hObject, eventdata, handles) if hObject == handles.Skull load_system('Skull')
steht.
Klingt für mich so, als sei das nicht nur ein einzelner String.
(Alternativ schreibe get(handles.flaeche,'String') direkt nach dem laden des Systems, setze Breakpoint trotzdem auf set_param, und schau, was dir im Commandwindow angegeben wird.)
_________________
LG
Martina
"Wenn wir bedenken, daß wir alle verrückt sind, ist das Leben erklärt." (Mark Twain))
ein.
und wenn er in den Fehler läuft, schau dir an, an welcher Stelle genau und schau, was in den Variablen dort so drinne steht.
ich könnte mir vorstellen, dass hObject == handles.Femur nicht geht.
Was steht in hObjekt, was in handles.Femur? ... einfach mal schauen, vergleichen,...
_________________
LG
Martina
"Wenn wir bedenken, daß wir alle verrückt sind, ist das Leben erklärt." (Mark Twain))
ok, hab das jetzt neu geschrieben, jetzt funktioniert es.
Ich kann jetzt verschiedene Modelle auf machen.
Nun möchte ich nach dem ich ein Modell ausgewählt habe, mit set_param nur die Konstanten deises Modelles ändere. Also ich hab ein Slider, womit ich die werte ändern kann.
Was ist denn Femur/Steifigkeit/flaeche für ein block? In welches Feld soll denn der Wert aus get(handles.flaeche,'String') eingetragen werden? Denn ein Feld/Option mit Namen "f" kann ich mir gerade nur schwer vorstellen.
Ließ dich einfach nochmal in der Hilfe zu set_param nach und schau, welche Block-eigenschaften für den Block den du verändern willst, überhaupt vorhanden sind.
Also Femur ist das Modell, Steifigkeit ist ein Subsystem in diesem Modell und flaeche ist der block konstante mit dem Name "flaeche und f ist constant value.
Also ich hab so was ähnliches nur für ein Modell schon konstruiert. und zwar hab zuerst eine
else set(handles.flaecheSlider,'Value',NewVal) set_param('ModularSimulation/Patient/Steifigkeit/flaeche','Value',NewStrVal) end
% --- Executes on slider movement. function flaecheSlider_Callback(hObject, eventdata, handles) % Ensure model is open
model_open(handles)
NewVal = get(hObject,'Value');
set(handles.flaeche,'String',NewVal) set_param('ModularSimulation/Patient/Steifigkeit/flaeche','Value',num2str(NewVal))
Das funktioniert ohne probleme. aber jetzt will ich mehrere modelle benutzen
Also ich hab mehrere Modelle, die ich von GUI aus mit Radiobutton auswählen kann. In der GUI hab ich noch mehrere Slider. Nun will ich wenn ich ein Modell ausgewählt habe, der wert der Slider nur in diesem modell über tragen.
Wie b ereits geschrieben: es gibt kein Feld mit Namen f. Und auch in deinem bisherigen, alten quellcode nutzte du nicht "f" sondern "Value".
guguli hat Folgendes geschrieben:
Also Femur ist das Modell, Steifigkeit ist ein Subsystem in diesem Modell und flaeche ist der block konstante mit dem Name "flaeche
Dass alles, was vor "Flaeche" steht, der Pfad ist, ist klar. Ich wollte nur wissen, was für ein Blocktyp es ist.
Wenn es ein Constant-Block ist, wirst du mit
Ein Feld mit dem Namen 'f' ist mir für einen constant-block nicht bekannt.
Und auch per get_param(gcbh,'ObjectParameters') finde ich kein Feld, was so heißt.
Ansonsten: setze Breakpoints, hangel dich durch den Quellcode, schaut dir an, was in den einzelnen Variablen steht, oder mach zwischendurch weitere abfragen. (z.B. get_param('Femur/Steifigkeit/flaeche','Value') )
_________________
LG
Martina
"Wenn wir bedenken, daß wir alle verrückt sind, ist das Leben erklärt." (Mark Twain))
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.