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

Gui Pop Up

 

bumbumquietsch*
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 55
Anmeldedatum: 17.10.11
Wohnort: München
Version: R2011b
     Beitrag Verfasst am: 27.10.2011, 17:11     Titel: Gui Pop Up
  Antworten mit Zitat      
Schönen guten Abend

ich beschäftige mich seit einiger Zeit mit GUI´s, befinde mich aber noch ganz am Anfang. Mit hilfe des "guide"- Befehls kann ich in Matlab einen GUI Editor aufrufen und mein eigenes Gui erstellen.

Ich hab ein POP-Menü erstellt, mehr nicht, in dem zwei Punkte auszuwählen sind. In meinem M-File steht jetzt folgendes:

Code:
% --- Executes on selection change in popupmenu1.
function popupmenu1_Callback(hObject, eventdata, handles)
% hObject    handle to popupmenu1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hints: contents = cellstr(get(hObject,'String')) returns popupmenu1 contents as cell array
%        contents{get(hObject,'Value')} returns selected item from popupmenu1



Wenn ich das richtig verstanden habe, muss ich doch hier die Aktion eingeben die ausgeführt werden soll, oder ?

Was muss ich hier eingeben, damit eine function in einem anderen m.file aufgerufen wird ? Diese Function soll mir ein Diagramm plotten!

Muss ich dann noch soetwas wie einen Start-Button definieren ? Also damit diese Aktion auch wirklich ausgeführt wird ?

Wer gute Seiten kennt in denen GUI´s genauer erklärt werden kann mir auch gerne so weiterhelfen. Wer direkt einen guten Vorschlag parat hat darf dies auch gerne hier direkt posten!

Danke schonmal für antworten und eure Hilfe

MFG
bumbumquietsch
Private Nachricht senden Benutzer-Profile anzeigen


Matt Lappen
Forum-Anfänger

Forum-Anfänger


Beiträge: 42
Anmeldedatum: 23.10.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.10.2011, 17:47     Titel:
  Antworten mit Zitat      
Du kannst die beispielsweise den Wert des Popups aus dem hobject holen und an deine Funktion übergeben.
Code:

function popupmenu1_Callback(hObject, eventdata, handles)
pop_val1 = get(hObject, 'Value');
meinefunc(pop_val1)
 

Damit führst du die Funktion meinefunc() aus, welcher dann der Wert des Popups zur Verfügung steht (getroffene Wahl). Alternativ kannst du auch den'String' anstelle des 'Value' auslesen.
Private Nachricht senden Benutzer-Profile anzeigen
 
bumbumquietsch*
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 55
Anmeldedatum: 17.10.11
Wohnort: München
Version: R2011b
     Beitrag Verfasst am: 27.10.2011, 19:29     Titel:
  Antworten mit Zitat      
Wird gleich mal getestet, bei Erfolg werde ich dann das Ergebnis nochmal posten! Danke für den Tip!
Private Nachricht senden Benutzer-Profile anzeigen
 
bumbumquietsch*
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 55
Anmeldedatum: 17.10.11
Wohnort: München
Version: R2011b
     Beitrag Verfasst am: 28.10.2011, 07:43     Titel:
  Antworten mit Zitat      
Hmm das funktioniert leider nicht so wie ich es mir vorgestellt habe:

In den Spalten stehen: Grafik 1, Grafik 2, Grafik 3 !

Wenn ich Grafik 1 anklicke, soll er eine Funktion aufrufen die meine Grafik plottet. Diese Funktion habe ich schon geschrieben:

Code:
function (figure)= Grafik(matrix)


Er läd mir quasi aus meiner Main Datei eine Matrix in diese Funktion und plottet mir dann ein Figure. Nun will ich diese Funktion so anwenden, dass Sie in Kombination mit einem GUI funtkioniert! Also wenn ich in meinem GUI-Pop Up einen Wert anwähle dann soll er mir genau DIESE funtkion mit dieser Grafik ausgeben. Er gibt mir immer einen Error in der Callback Funktion!!
Private Nachricht senden Benutzer-Profile anzeigen
 
Matt Lappen
Forum-Anfänger

Forum-Anfänger


Beiträge: 42
Anmeldedatum: 23.10.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.10.2011, 10:02     Titel:
  Antworten mit Zitat      
Ok, dass ganze ist ziemlich undurchsichtig, wenn man weder code, noch die die aufzurufende Funktion kennt. Also, was funktioniert nicht?
So wie ich das verstanden habe, wählst du aus dem Popup eine Funktion aus (Bsp. 1.Option). Wird diese gewählt, so soll unmittelbar das Skript/bzw. die Funktion gestartet, welche deine Daten plottet.
Sobald das Popup-Menue verwendet wird/eine Wahl getroffen wird, reagiert das Callback und ruft nun die Funktion popupmenu1_Callback(hObject, eventdata, handles) auf. In dieser Funktion kannst du nun den Optionswert 'Value' auslesen. Dann in einer If-oder Case-Abfrage darauf reagieren.
Z.B.:
Wenn Value==1, dann Grafik(Matrix)
Wenn Value==2, dann .....
usw.
Hast du deine Funktion mit einem function-header erstellt (Dies soll wohl der Code-Abschnitt aussagen), so kannst du sie einfach über der Funktionsnamen aufrufen (insofern sie in einem Matlab-Pfad liegt), ist deine Funktion lediglich ein Skript, so kannst du es mit run('C:\........\Grafik.m') aufrufen.
Noch ein Tipp: verwende keine Bezeichner, die auch gleichzeitig bestehende Matlabfunktionen darstellen. So erzeugt (figure) beispielsweise eine leere Grafik. Wenn du nicht vorhast das Figure-Handle zu übergeben, dann braucht deine Funktion auch keinen Ausgabeparameter.
Gruß,Matt
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 - 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.