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

Info Box

 

NzEROS

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.01.2009, 13:31     Titel: Info Box
  Antworten mit Zitat      
Hallo, ich habe eine Frage, wie kann man alle Variablen die man für eine Berechnung deklariert hat, an einem Fester ausgeben? Damit meine ich z.B.: das ich eine Variable a=5 habe, welches die seitenlänge von einem Haus ist. Also möchte ich ein Button erzeugen welches ein "Infofenster" öffnet das diese Varibale a ausgibt und die zugehörige Erklärung. Danke vielmals.

MfG


NzEROS

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.01.2009, 13:43     Titel:
  Antworten mit Zitat      
Hallo ich bins nochmal. Ich hab grad den msgbox({'Line1', 'Line2'}) befehl gefunden, es passt, aber da ich um die 300 Variablen und verschiedene Typen mit verschiedenen Größen habe wollte ich Fragen ob man die Variablen wie in C++ eingeben kann, also z.B.:

msgbox('Seitenlänge %d', 'Breite %d',a,b) also so in etwa

mfg
 
mauskill2
Forum-Anfänger

Forum-Anfänger


Beiträge: 27
Anmeldedatum: 05.07.07
Wohnort: bei Paderborn
Version: R2007a
     Beitrag Verfasst am: 19.01.2009, 13:48     Titel:
  Antworten mit Zitat      
Innerhalb einer GUI weiß ich nicht...aber direkt im Code aufgerufen ist helpdlg als befehl dein Freund.

Beispielsweise (ohne zu testen aus dem Kopf):

Code:
helpdlg(['a =', a, ' m'], 'Seitenlänge der Hauses');


Grüße
Mauskill2
Private Nachricht senden Benutzer-Profile anzeigen
 
mauskill2
Forum-Anfänger

Forum-Anfänger


Beiträge: 27
Anmeldedatum: 05.07.07
Wohnort: bei Paderborn
Version: R2007a
     Beitrag Verfasst am: 19.01.2009, 13:56     Titel:
  Antworten mit Zitat      
Ja dann suchst du ja sowas wie ich bschrieben hatte Smile

help/techdoc/ref/helpdlg.html"> gehört da nicht vor (da stimmt mit der Forensoftware nicht Sad)

Das mit den Variablen ausgeben geht wie oben beschrieben mit ['string', Variable, 'string']. Einen zu C++ ähnlichen Weg mit Platzhaltern im String gibt es glaube ich auch noch, kenne ich aber nicht.

Einen Fehler hatte ich aber noch eingebaut Smile. Wenn es sich um Variablen handelt die kein String sind müssen sie mit z. B. num2str (bei Zahlen) umgewandelt werden.

z. B.
Code:
helpdlg(['a =', num2str(a), ' m'], 'Seitenlänge der Hauses');


EDIT: Das help/techdoc/ref/num2str.html"> natürlich auch nicht...

Grüße
Mauskill2
Private Nachricht senden Benutzer-Profile anzeigen
 
dib0r
Forum-Guru

Forum-Guru


Beiträge: 413
Anmeldedatum: 09.05.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.01.2009, 14:42     Titel:
  Antworten mit Zitat      
Hallo,

Code:
ist da dein Freund. Ich kenne leider die C++ Syntax nicht, sprintf verhält sich zumindest so wie in C.

Code:
msgbox(sprintf('Seitenlägne %d, Breite %d',a,b));


MfG
Private Nachricht senden Benutzer-Profile anzeigen
 
NzEROS

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.01.2009, 15:01     Titel:
  Antworten mit Zitat      
supi, genau richtig aber ich hab da ein problem, hier mein bsp:



a=10
b=5
helpdlg({['Laenge a= ',aaaa,'m'], ['Breite b= ',b,'m'] },'Seitenlänge')

und was rauskommt ist das



also statt dem werten kommen pfeile etc raus

danke

mfg
 
Epfi
Forum-Meister

Forum-Meister



Beiträge: 1.134
Anmeldedatum: 08.01.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.01.2009, 15:47     Titel:
  Antworten mit Zitat      
NzEROS hat Folgendes geschrieben:

a=10
b=5
helpdlg({['Laenge a= ',aaaa,'m'], ['Breite b= ',b,'m'] },'Seitenlänge')


Es reicht nicht, wenn Du das Posting, wo sprintf genannt wird nur liest und zur Kenntnis nimmst. Du musst das schon auch in Dein Programm einbauen, sonst wirkt es nicht ;)

Hintergrund: Jedes Schriftzeichen in einem Computer wird als Zahl gespeichert. Meistens wird dazu die ASCII-Codierung verwendet. z.B. wird dort ein großes B durch 66 repräsentiert und das Zeichen 1 als 49. Die Ausgabe als Buchstabe erfolgt dann, wenn der Rechner weiß, dass es sich um einen Buchstaben handelt, weil er dann die entsprechende Codierung anwenden kann.

Andersrum verhält es sich genauso. Wenn der Rechner einen Buchstaben erwartet, dann musst Du ihm auch einen geben. Wenn er eine Zahl statt den Buchstabens (string) bekommt, dann akzeptiert er das in den meisten Fällen auch. Er speichert dann den übergebenen Wert als Zahl ab, behandelt ihn in Zukunft aber wie eine Zeichenkette. So auch in Deinem Codeschnipsel. Bei der Ausgabe erfolgt dann aber wiederum eine Anwendung der Code-Tabelle. Du kannst in Deinem code ja mal a=49 und b=66 einsetzen. Die Ausgabe wird dann '1' und 'B' sein.

Damit eben das nicht passiert, musst Du die Zahlen, bevor Du sie an die msgbox-funktion übergibst in strings, also Zeichenketten umwandeln. Dann wird aus Deiner errechneten Zahl 1 eine 49, aus der Zahl 2 eine 50 usw. Und genau das tut die Funktion sprintf.
Private Nachricht senden Benutzer-Profile anzeigen
 
mauskill2
Forum-Anfänger

Forum-Anfänger


Beiträge: 27
Anmeldedatum: 05.07.07
Wohnort: bei Paderborn
Version: R2007a
     Beitrag Verfasst am: 19.01.2009, 19:11     Titel:
  Antworten mit Zitat      
...oder wie im vierten Posting angemerkt num2str(aaaa) bzw. num2str(b) benutzen...

Grüße
Mauskill2
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 - 2024 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.