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

Beschriftung in einem Axes

 

Joa
Forum-Century

Forum-Century


Beiträge: 133
Anmeldedatum: 19.05.09
Wohnort: ---
Version: R2013b
     Beitrag Verfasst am: 06.07.2010, 11:02     Titel: Beschriftung in einem Axes
  Antworten mit Zitat      
Hallo,
ich hab mal wieder eine Frage.
Ich möchte einen Text und Werte als Beschriftung in ein Axes hinzufügen.
Prinzipiell funktioniert das ja mit der text-Funktion.
Aber ich möchte das es dann so aussieht:

Auswertung:
MW= 13.5 mm
U=0.23

Und es sollte noch ein Rahmen um den ganzen Text.

Gibt es dafür eine Lösung? Ich habe leider bis jetzt nichts dazu gefunden

LG
Joa
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 06.07.2010, 11:14     Titel:
  Antworten mit Zitat      
Hi,

Code:
text(0.5, 0.5, sprintf('Auswertung: \nMW= 13.5 mm \nU=0.23'), 'EdgeColor', 'black')


Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Joa
Themenstarter

Forum-Century

Forum-Century


Beiträge: 133
Anmeldedatum: 19.05.09
Wohnort: ---
Version: R2013b
     Beitrag Verfasst am: 06.07.2010, 11:22     Titel:
  Antworten mit Zitat      
Das funktioniert, aber ich möchte die Werte für MW und U aus meiner Berechnung nehmen und nicht extra eingeben.

Gibt es dafür auch noch eine Lösung?

LG Joa
Private Nachricht senden Benutzer-Profile anzeigen
 
Joa
Themenstarter

Forum-Century

Forum-Century


Beiträge: 133
Anmeldedatum: 19.05.09
Wohnort: ---
Version: R2013b
     Beitrag Verfasst am: 06.07.2010, 12:12     Titel:
  Antworten mit Zitat      
Auch dieses Probelm ist gelöst und zwar so:
Code:

utext=num2str(U);
mwtext=num2str(MW);

hold(haxes, 'all');
text(10,10,1, sprintf(['Auswertung: \nMW = ' mwtext ' mm \nU = ' utext ' mm']), 'EdgeColor', 'black','Parent',haxes);
 


Danke für die Hilfe.

LG Joa
Private Nachricht senden Benutzer-Profile anzeigen
 
Joa
Themenstarter

Forum-Century

Forum-Century


Beiträge: 133
Anmeldedatum: 19.05.09
Wohnort: ---
Version: R2013b
     Beitrag Verfasst am: 16.07.2010, 15:43     Titel:
  Antworten mit Zitat      
Jetzt hat sich noch ein Problem aufgetan,
wenn ich das Textfeld überschreibe mit neuen Werten, dann bleibt das alte Textfeld darunter sichtbar.
Ich möchte aber falls eins vorhanden ist, das erstmal löschen und dann das neue in mein axes schreiben.

Normalerweise würde ich das ja mit:

Code:


Das funktioniert aber nicht.

Wie kann ich das alte Texlefd denn löschen?

LG Joa
Private Nachricht senden Benutzer-Profile anzeigen
 
josekamara
Forum-Meister

Forum-Meister


Beiträge: 529
Anmeldedatum: 26.04.08
Wohnort: München
Version: ---
     Beitrag Verfasst am: 16.07.2010, 16:22     Titel:
  Antworten mit Zitat      
Hallo,

Wenn Du das Handle vn text hast, dann kannst das String und die Positon ändern.
Code:

h = text(......);

set(h,'String','Hallo');
set(h,'Position',[n m x y]);
 


Gruß

Jose
_________________

Simulation
Private Nachricht senden Benutzer-Profile anzeigen
 
Joa
Themenstarter

Forum-Century

Forum-Century


Beiträge: 133
Anmeldedatum: 19.05.09
Wohnort: ---
Version: R2013b
     Beitrag Verfasst am: 16.07.2010, 16:29     Titel:
  Antworten mit Zitat      
Ok, aber kann ich es auch einfach löschen? Und dann mein Textfeld neu zeichnen?

Das Problem ist nämlich, dass ich das alles aus einer SubGUI in meine HauptGUI plotte und deswegen die Abfrage in welches Axes geplottet wird und di ehandles Abfrage sich etwas kompliziert gestaltet, also wäre mir es am liebsetn, wenn ich einfach bevor ich ein neues Texfeld plotte das alte lösche.
Private Nachricht senden Benutzer-Profile anzeigen
 
josekamara
Forum-Meister

Forum-Meister


Beiträge: 529
Anmeldedatum: 26.04.08
Wohnort: München
Version: ---
     Beitrag Verfasst am: 16.07.2010, 16:43     Titel:
  Antworten mit Zitat      
Mit dem Delete sollte es funken. Viel Glück.
_________________

Simulation
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 16.07.2010, 19:10     Titel:
  Antworten mit Zitat      
Hallo Joa,

Zitat:
Das funktioniert aber nicht.

gewöhne dir bitte grundsätzlich an, zu sagen, inwiefern etwas nicht funktioniert. Ansonsten ist es schwierig bis unmöglich, weiterzuhelfen.

Code:
if exist('h', 'var') && ishandle(h)
    delete(h);
end

sollte funktionieren.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Joa
Themenstarter

Forum-Century

Forum-Century


Beiträge: 133
Anmeldedatum: 19.05.09
Wohnort: ---
Version: R2013b
     Beitrag Verfasst am: 19.07.2010, 11:55     Titel:
  Antworten mit Zitat      
Hey,
ich habe das jetzt mal so Probiert:

Code:

haxes = findobj( 0, 'Type', 'axes');

if size(haxes,1)>1
    haxes=haxes(2);
end

if exist('TextKreis', 'var') && ishandle(TextKreis)
    delete(TextKreis);
end

hold(haxes, 'all');
TextKreis=text(vxmax+1,vymax+1,vzmax+1, sprintf([' Auswertung Gausskreis \n Mittelwert = ' mwtext ' mm \n Erw. MU = ' utext ' mm']), 'EdgeColor', farbe,'LineWidth',2,'Parent',haxes);
 


Aber es funktioniert leider nicht. Es überschreibt trotzdem immer noch das alte Textfeld anstelle es zu löschen.

Ich möchte das so machen, wenn das irgendwie geht:
Ich rufe miene Funktion auf die etwas Berechnet und das dann in meinem Textfeld anzeigt. Wenn ich jetzt die Funktion nochmal aufrufe, soll sie checken, ob es schon ein Textfeld gibt und wenn ja das löschen und das neue anzeigen. Wie kann ich das machen?

LG Joa
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 19.07.2010, 12:48     Titel:
  Antworten mit Zitat      
Hallo,

wenn das in dem Callback eines GUIs ist, musst du natürlich auch noch dafür sorgen, dass die Variable TextKreis bekannt bleibt. So sollte es gehen (am Anfang des Callbacks):

Code:


Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Joa
Themenstarter

Forum-Century

Forum-Century


Beiträge: 133
Anmeldedatum: 19.05.09
Wohnort: ---
Version: R2013b
     Beitrag Verfasst am: 19.07.2010, 13:44     Titel:
  Antworten mit Zitat      
Hey,
am Anfang welches Callbacks muss ich das setzen?

Ich habe eine Haupt GUI und aus der Rufe ich eine weitere aus in welcher ich etwas berechne und dann plotte ich es wieder in meine Haupt GUI.

Wo genau muss ich das dann hinschreiben?

LG Joa
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 19.07.2010, 14:20     Titel:
  Antworten mit Zitat      
Hallo,

In den Callback, dessen Ausschnitt du gepostet hast.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Joa
Themenstarter

Forum-Century

Forum-Century


Beiträge: 133
Anmeldedatum: 19.05.09
Wohnort: ---
Version: R2013b
     Beitrag Verfasst am: 20.07.2010, 10:03     Titel:
  Antworten mit Zitat      
Das ganze spielt sich bei mir in der Function

Code:
function DnachGauss(v,colcolor,handles)


ab und diese wird duch einen Pushbutton mit dem Aufruf:

Code:
function pushbuttonDmG_Callback(hObjcet, eventdata, handles)
global v;
global colcolor;
persistent TextKreis;
DnachGauss(v,colcolor,handles);


aufgerufen. Wenn ich das jetzt aufrufe überschreibt mein neues Textfeld immer noch mein altes Textfeld.
Oder habe ich es doch falsch plaziert?

LG Joa
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 20.07.2010, 11:44     Titel:
  Antworten mit Zitat      
Hallo,

wenn es zwei Möglichkeiten gibt und die eine nicht funktioniert, dann im Zweifelsfall die andere probieren Wink Ja, die Variable muss dort als persistent deklariert werden, wo sie auch verwendet wird - in dem Fall also in der Funktion DnachGauss ganz oben.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen

Gehe zu Seite 1, 2  Weiter

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.