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

grafische Darstellung von Signaleigenschaften

 

dani1632
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 65
Anmeldedatum: 28.02.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.09.2012, 15:29     Titel: grafische Darstellung von Signaleigenschaften
  Antworten mit Zitat      
Hallo!

Ich teile eine Figure in 2 subplots. Im oberen subplot zeichne ich ein Signal, aus dem ich bestimmte Eigenschaften berechne. Diese Eigenschaften würde ich gerne im unteren subplot grafisch darstellen, und zwar an Hand von 3 Zuständen. Das Ganze sollte ungefähr so aussehen:

O Zustand1
O Zustand2
O Zustand3

Ich berechne also aus dem Signal eine Eigenschaft, diese ist entweder Zustand1, 2 oder 3. Je nach dem, was bei der Berechnung rauskommt, soll der Kreis bei dem jeweiligen Zustand farbig erscheinen.

Meine Frage: Wie kann man sowas realisieren? Ich habe noch keine Erfahrung mit GUIs, brauch ich für so eine einfache Darstellung eine GUI? Und kann man das in einer Figure zusammen mit dem Signal (wie oben beschrieben) überhaupt darstellen? Es kann auch eine andere Anzeigemethode sein, bin für jeden Vorschlag dankbar!

Vielen Dank, dani1632
Private Nachricht senden Benutzer-Profile anzeigen


dani1632
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 65
Anmeldedatum: 28.02.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.09.2012, 19:01     Titel:
  Antworten mit Zitat      
Ich habe nun einen Entwurf gemacht: Im oberen subplot erscheint das Signal. Je nach dem welche Form dieses Sinal hat soll nun im unteren subplot Zustand1, 2 oder 3 aktiviert werden (der Kreis rot leuchten) -> siehe Anhang

Ich habe dafür einfach 3 Bilder gezeichnet, bei denen je ein anderer Zustand aktiv ist (im Anhangs-Beispiel Zustand 1). Je nach dem welcher Zustand aktiv sein soll zeige ich das entsprechende Bild (if-Anweisung) mit imshow() an.

Mir erscheint diese Methode etwas unprofessionell, hat jemand einen besseren Vorschlag?

Vielen Dank, dani1632

anzeige.fig
 Beschreibung:

Download
 Dateiname:  anzeige.fig
 Dateigröße:  44.35 KB
 Heruntergeladen:  442 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 18.09.2012, 13:59     Titel:
  Antworten mit Zitat      
Hallo dani1632,

Wie wäre es mit einer Checkbox?

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
dani1632
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 65
Anmeldedatum: 28.02.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.09.2012, 18:12     Titel:
  Antworten mit Zitat      
Hallo!
Vielen Dank zunächst für den Tipp!

Also sollte ich eine GUI verwenden oder? wie gesagt, ich habe damit noch keine Erfahrung, werde mich jetzt aber damit beschäftitgen!

Ich würde die 3 Zusatände gerne auch farblich markieren (z.B. Zustand1 rot, 2 gelb und 3 grün, wie ein Ampelsystem). Ich denke bei den Chekcboxen ist das nicht möglich oder? Gibt es da auch irgendwelche Buttons oder so, die man farblich darstellen kann?

Vielen Dank für die Hilfe!
LG
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 18.09.2012, 20:36     Titel:
  Antworten mit Zitat      
Hallo dani1632,

Code:
figure;
Button(1) = uicontrol('Style', 'PushButton', 'BackgroundColor', [1, 0, 0], ...
   'Units', 'normalized', 'Position', [0.1, 0.1, 0.2, 0.1]);
Button(2) = uicontrol('Style', 'PushButton', 'BackgroundColor', [1, 1, 0], ...
   'Units', 'normalized', 'Position', [0.4, 0.1, 0.2, 0.1]);
Button(3) = uicontrol('Style', 'PushButton', 'BackgroundColor', [0, 1, 0], ...
   'Units', 'normalized', 'Position', [0.7, 0.1, 0.2, 0.1]);

% "Disabled" color:
pause(1.0);
set(Button(1), 'BackgroundColor', ([1, 0, 0] + [0.8, 0.8, 0.8]) / 2);
 

Farben sind bei CheckBoxen eher verwirrend.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
dani1632
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 65
Anmeldedatum: 28.02.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.09.2012, 09:29     Titel:
  Antworten mit Zitat      
Hallo Jan S!!

Vielen Dank für deine Hilfe, hat mir sehr geholfen!

LG dani1632
Private Nachricht senden Benutzer-Profile anzeigen
 
dani1632
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 65
Anmeldedatum: 28.02.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.09.2012, 10:23     Titel:
  Antworten mit Zitat      
Hallo,
noch eine Frage ist aufgetaucht:
Wie kann ich dem Button einen Rahmen geben?

Ich habe die Buttons nun so erstellt:
Code:

Button(1) = uicontrol('Style', 'PushButton','Units', 'normalized',...
 'Position', [0.1, 0.1, 0.2, 0.15]);
Button(2) = uicontrol('Style', 'PushButton','Units', 'normalized',...
 'Position', [0.4, 0.1, 0.2, 0.15]);
Button(3) = uicontrol('Style', 'PushButton','Units', 'normalized',...
 'Position', [0.7, 0.1, 0.2, 0.15]);
 

Um nun die Eigenschaften des Buttons (ind em fall Button 2) zu ändern, hab ich folgendes versucht:
Code:
set(Button(2),'String','Zustand2',...
 'FontSize',24, 'FontWeight','bold','BackgroundColor', [1, 1, 0]);


Funktioniert soweit ganz gut, aber gibt es eine Möglichtkeit, dem Button einen Rahmen zu geben? Wenn ich 'BorderType' oder BorderWidth' im set-Befehl verwende, bekomme ich eine Fehlermeldung:

??? Error using ==> set
Invalid uicontrol property: 'BorderType'.

Error in ==> SignalEvaluation at 85
set(Button(2),'String','Zustand 2','FontSize',24, 'FontWeight','bold','BackgroundColor', [1, 1,
0],'BorderType','Line');

Weiß jemand wie das funktioniert?
Danke, lg
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 19.09.2012, 13:58     Titel:
  Antworten mit Zitat      
Hallo dani1632,

Leider kann man den Border der Buttons nicht ohne Weiteres in Matlab verändern. Es gibt aber eine undokumentierte Funktion dafür: http://undocumentedmatlab.com/blog/customizing-uicontrol-border/. Aber wie alles Undokumentierte in Matlab kann das beim nächtsen Release bereits zu ernsten Fehlern führen. Deshalb wäre ich damit sehr vorsichtig, d.h. ein TRY-CATCH drum herum, ein Kommentar dazu woher die Methode stammt und mit welcher Matlab Version es funktioniert, ein weitere Kommentar in die Help-Section (erster Kommentar-Block nach der "function"-Zeile).
Ich habe schon bei Programmen, die garantiert und Matlab 5.3 bis 2009a laufen mussten einfach einen zweiten etwas größeren Button dahinter gesetzt. Das sah gut aus bei den alten rechteckigen Buttons und den modernen abgerundeten auch.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
dani1632
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 65
Anmeldedatum: 28.02.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.09.2012, 14:22     Titel:
  Antworten mit Zitat      
Hallo Jan,

okay danke... Das Problem das ich habe ist die Grafik im MS Word und in weiterer Folge als pdf. Ich kopiere die Figure immer mit "edit" -> "copy figure" und füge sie dann im Word ein. Im Word gehts noch so halbwegs mit der Qualität, wenn ich das Ganze dann aber in pdf umwandle, erscheinen die Ränder des Buttons nicht mehr wirklich schön...

Ich werd mal versuchen, dieses Problem zu lösen...

Danke, lg
Private Nachricht senden Benutzer-Profile anzeigen
 
dani1632
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 65
Anmeldedatum: 28.02.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.09.2012, 16:40     Titel:
  Antworten mit Zitat      
Hallo,

hab das Problem jetz gelöst: Habe mit "axes" eine neue Oberfläche in der figure erstellt und dann einfach mit "rectangle" Rechtecke erzeugt. Mit einem Handle auf diese Rechtecke kann ich dann deren Eigenschaften verändern (da kann man auch einen schönen Rahmen erzeugen und die passende Farbe des Rechtecks). Für die beschriftung des Rechtecks hab ich keine Eigenschaft gefunden (wie 'String' bei den Buttons vorher), dafür habe ich einfach mit der "text"-Funktion einen Text über das Rechteck gelegt. Vielleicht fällt jemandem für den Text was besseres ein (falls ja bitte antworten Smile).

Jan, vielen Dank für deine Tipps!
LG dani
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 20.09.2012, 17:36     Titel:
  Antworten mit Zitat      
Hallo dani1632,

Das klingt sehr gut. Ich glaube nicht dass es etwas besseres als text() gibt, um einen Text darzustellen.

Gruß, Jan
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.