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

Zentrierte Ausgabe

 

Taylor

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.10.2012, 19:42     Titel: Zentrierte Ausgabe
  Antworten mit Zitat      
Hallo

kann mir jemand sagen, wie ich bei MatLab eine Ausgabe zentriert machen kann?

Ich soll ein Programm schreiben, dass das Pascal'sche Dreieck darstellt, und habe es auch soweit fertig, jedoch kommt bei mir im Moment eher eine "Pascal'sche Treppe" raus, so etwa:

1
1 1
1 2 1
1 3 3 1
...

Nun bräuchte ich einen Befehl, der mir das Dreieck zentriert ausgibt Smile

(Mit Leerzeichen funktioniert leider nicht, da das Programm zunächst fragt, wie weit das Dreieck gehen soll, und ich daher nicht weiß, wieviele Leerzeichen benötigt werden. Oder weiß vllt jemand, wie ich n Leerzeichen machen kann??)

Danke schonmal Wink


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 07.10.2012, 19:54     Titel:
  Antworten mit Zitat      
Hallo,

du musst die Leerzeichen selbst angeben. n Leerzeichen:
Code:


Grüße,
Harald
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: 07.10.2012, 21:04     Titel: Re: Zentrierte Ausgabe
  Antworten mit Zitat      
Hallo Taylor,

Welche "Ausgabe" meinst Du? Als Text in ein UICONTROL, ein TEXT-Objekt, in das Command-Window oder in ein File?

Zitat:
(Mit Leerzeichen funktioniert leider nicht, da das Programm zunächst fragt, wie weit das Dreieck gehen soll, und ich daher nicht weiß, wieviele Leerzeichen benötigt werden.

Das verstehe ich nicht. Um das Dreieck zentriert auszugeben, muss die Anzahl der Zeilen bekannt sein, damit auch die Breite bekannt ist. Und dann benötigt man natürlich Leerzeichen. Was bedeutet dann "funktioniert leider nicht"?

Die Funktion "blanks(n)" gibt n Leerzeichen zurück.

Ein Verbesserungsvorschlag ist einfacher, wenn Du zeigst, wie Du das bisherige Ergebnis erstellst. Ist das ein CHAR(10) separierter String oder ein Cell String? Erstellst Du dies Zeile für Zeile, etc?

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Taylor

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.10.2012, 18:14     Titel:
  Antworten mit Zitat      
Also mein Programm sieht bis jetzt so aus:

Code:
clc
clear
n = input('Geben Sie bitte ein, wie weit das Pascalsche Dreieck gehen soll: ');
for i=0:n
    for j=0:i
        a = ueber(i,j);
        fprintf('%8.0f', a)
    end
    fprintf('\n')
end
 

Das ueber(i,j) ist eine selbstgeschriebene Funktion die i über j ausrechnet, die funktioniert soweit Wink
Die Ausgabe ist:

1
1 1
1 2 1
1 3 3 1
1 4 6 4 1

Und das sollte eigentlich zentriert und nicht linksbündig sein Smile

Wisst ihr wie ich meine?

Eure Vorschläge mit repmat oder blanks funktionieren nicht wenn ich das mit fprintf machen möchte. Ich hab das hier versucht:
Code:
c=repmat(' ',1,n);
fprintf('%8.0f', c)
bzw
c=blanks(n);
fprintf('%8.0f', c)
 
und habe beide Male keine Leerzeichen sondern 32 ausgegeben bekommen Shocked
Weiß grade echt nichmehr weiter ^^ danke für weitere tipps Very Happy

[EDITED, Bitte Code-Umgebung anwenden - Danke]
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 12.10.2012, 08:22     Titel:
  Antworten mit Zitat      
Hallo,

das Problem ist, dass c ein String ist und du es mit %f als Double/Float behandelst. Für Strings solltest du %s verwenden, z.B.
Code:

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Taylor

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.10.2012, 19:04     Titel:
  Antworten mit Zitat      
Hallo,

Aah ja richtig, da war was ^^
Aber jetzt gehts, danke Very Happy

LG
 
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.