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

Messagebox

 

peterlec

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.04.2013, 14:46     Titel: Messagebox
  Antworten mit Zitat      
Hey,

ich würd gerne eine Tabelle in der Message Box machen, jedoch klappt es nicht

habe auch schon mit /t für tabs benutzt, ging nicht,
habe versucht mit leerzeichen sind nicht schön aus
Code:
       msgbox({ ...
        sprintf('Outputs                           am ersten am zweiten ') ...  
        sprintf('zeile1:                    %.2f      %.2f',a1,a2) ...
        sprintf('zeile2:                  %.2f      %.2f',b1,b2) })
 


danke.


denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 08.04.2013, 15:37     Titel:
  Antworten mit Zitat      
Hallo

da musst du die Zeichen ganz genau zählen, für Leerzeichen kannst du die Funktion BLANKS verwenden. Und auch in Formatierung kannst du die Anzahl Leerzeichen (fprintf('%10d%10d',1000,2)) eingeben
Code:

msgbox({ ...
   sprintf('Outputs%s%10s%s%10s'     , blanks(20) , 'spalte1', blanks(10),'spalte2' ) ...
   sprintf('zeile1:%s%10.2f%s%10.2f' , blanks(20) , 10000    , blanks(10), 2        ) ...
   sprintf('zeile2:%s%10.2f%s%10.2f' , blanks(20) , 3        , blanks(10), 40000    ) })

 
Private Nachricht senden Benutzer-Profile anzeigen
 
peterlec

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.04.2013, 16:14     Titel:
  Antworten mit Zitat      
anstatt zeile stehen manchaml auch lange texte, es hat jetzt geklappt , nur ist es immer noch chaotisch...

hier das beispiel

Code:
       msgbox({ ...
        sprintf('hier%s%10s%s%10s', blanks(20) , 'spalte1', blanks(10), 'spalte2') ...  
        sprintf('aaaaaaaaaa:%s%10.2f%s%10.2f' , blanks(20) , 1000    , blanks(10), 100) ...
        sprintf('bbbbbbbbbbbbbbbbbbb:%s%10.2f%s%10.2f' , blanks(20) , 10, blanks(10), 100000) ...
        sprintf('vvvvvvvvvvvv:%s%10.2f%s%10.2f' , blanks(20) , 1000, blanks(10), 1000) ...
        sprintf('vvvvvvv:%s%10.2f%s%10.2f' , blanks(20) , 1000.00, blanks(10), 100000) ...
        sprintf('cccc:%s%10.2f%s%10.2f' , blanks(20) , 1000, blanks(10), 1) ...
        sprintf('ddddd:%s%10.2f%s%10.2f' , blanks(20) , 1000, blanks(10), 100000) ...
        sprintf('eeeeeeeeeeeeeeeeeeeeeeeeeeeeee:%s%10.2f%s%10.2f' , blanks(20) , 1000, blanks(10), 100000) ...
        sprintf('Mittelwert der korrigierten Werte:%s%10.2f%s%10.2f' , blanks(20) , 1, blanks(10), 10)})
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 08.04.2013, 17:04     Titel: Re: Messagebox
  Antworten mit Zitat      
Hallo peterlec,

Was sähe denn "schön" aus? Bitte erkläre genau was Du möchtest. Bisher sehen wir nur code, die nicht das macht was Du möchtest. Das erlaubt aber noch keinen Verbesserungsvorschlag.

Im Allgemeinen hilft es, das %Width.Precisiong-Format von sprintf() zu benutzen, da man damit die Anzahl der Buchstaben festlegen kann. Dann braucht man noch einen Mono-Spaced Font, damit auch alle Buchstaben gleich breit sind. Oder man nimmt gleich ein UITABLE.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 08.04.2013, 18:34     Titel:
  Antworten mit Zitat      
Hallo

Wie Jan schon erwähnt hat, muss man die Schrift ändern.

Code:
     hf= msgbox({ ...
        sprintf('%35s%s%10s%s%10s'     , 'hier' , blanks(2),'spalte1', blanks(2), 'spalte2') ...  
        sprintf('%35s%s%10.2f%s%10.2f' , 'aaaaaaaaaa:' ,blanks(2), 1000    , blanks(2), 100) ...
        sprintf('%35s%s%10.2f%s%10.2f' , 'bbbbbbbbbbbbbbbbbbb:',blanks(2), 10, blanks(2), 100000)...
        sprintf('%35s%s%10.2f%s%10.2f' , 'Mittelwert der korrigierten Werte:',blanks(2), 1, blanks(2), 10)})
     
     pos = get(hf,'Position')
     set(hf,'Position',[pos(1:2),pos(3)+100,pos(4)])
     ht=findobj(hf,'Type','text');
     set(ht,'FontName','FixedWidth')
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.04.2013, 20:59     Titel:
  Antworten mit Zitat      
es klappt auch mit dem vorschlag nicht. mal anders gefragt, gibt es eine andere methode. gibt es vorgefertigte tabellen???

Diese methode ist für mich zu statisch
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 08.04.2013, 22:40     Titel:
  Antworten mit Zitat      
Hallo,

Siehe den Befehl UITABLE. Meinst Du so eine Tabelle? Wenn nicht, was genau suchst Du?

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
freddy123
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 57
Anmeldedatum: 27.03.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.04.2013, 22:36     Titel:
  Antworten mit Zitat      
ich habe mir das mal mit den uitable angeschaut, sieht schön aus..

Nur habe ich kein beispiel im Internet gefunden, wo man es in der Messagebox zeigt.. bzw. ausgibt..


sorry aber könntest du mir mal helfen, das beispiel auszugeben

Code:
f = figure('Position', [100 100 752 350]);
t = uitable('Parent', f, 'Position', [25 25 700 200]);
set(t, 'Data', magic(10));
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: 11.04.2013, 00:09     Titel:
  Antworten mit Zitat      
Hallo freddy123,

Stimmt, uitables sind in Message-Boxen eher unüblich. Aber wenn man ein unübliches Problem hat, kann man die "Message-Box" ja als einfaches GUI bezeichnen, und dann ist es gar nicht mehr ungewöhnlich.

Zitat:
sorry aber könntest du mir mal helfen, das beispiel auszugeben

Das verstehe ich nicht. Der Code läuft bei mir. Was möchtest Du ausgegeben haben?

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.