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

Textmatrix und Zahlenmatrix übereinander stapeln

 

gasmeister
Forum-Anfänger

Forum-Anfänger


Beiträge: 27
Anmeldedatum: 12.10.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.11.2010, 10:28     Titel: Textmatrix und Zahlenmatrix übereinander stapeln
  Antworten mit Zitat      
Hi,

Wahrscheinlich ist die Lösung ganz einfach, aber ich bekomme es einfach nicht auf die Reihe. Ich brauche diese Ausgabe für eine Textbox in einem Plot.

Code:
a = num2str([1 2])
b = ['bam' 'bam']
 


Möchte ich das nun einfach übereinander stapeln:

Code:
c = [b; a]
??? Error using ==> vertcat
CAT arguments dimensions are not consistent.


Kommt diese Fehlermeldung.

Kann mir da einer weiterhelfen?
Letztendlich soll eine Textbox mit zwei Spalten erscheinen, welche ganz oben an den Spalten jeweils eine Überschrift enthält.

mfG
Private Nachricht senden Benutzer-Profile anzeigen


Achi
Forum-Guru

Forum-Guru


Beiträge: 250
Anmeldedatum: 14.04.10
Wohnort: ---
Version: R2007a
     Beitrag Verfasst am: 25.11.2010, 10:34     Titel:
  Antworten mit Zitat      
Es geht nicht, weil du verschiedene Größen hast:

a = num2str([1 2])
b = ['bam' 'bam']
a =
1 2
b =
bambam
>> whos
Name Size Bytes Class Attributes

a 1x4 8 char
b 1x6 12 char
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
gasmeister
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 27
Anmeldedatum: 12.10.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.11.2010, 10:41     Titel:
  Antworten mit Zitat      
Ja gut und wie bekomm ich das nun richtig hin?
Private Nachricht senden Benutzer-Profile anzeigen
 
Achi
Forum-Guru

Forum-Guru


Beiträge: 250
Anmeldedatum: 14.04.10
Wohnort: ---
Version: R2007a
     Beitrag Verfasst am: 25.11.2010, 10:48     Titel:
  Antworten mit Zitat      
Ganz verstehe ich das Problem nicht,
aber du wirst wahrscheinlich
text und sprintf brauchen, legend könnte auch helfen.
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
gasmeister
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 27
Anmeldedatum: 12.10.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.11.2010, 10:52     Titel:
  Antworten mit Zitat      
Hallo, ich möchte dann beispielsweise folgende Matrix als Ergebnis haben:

Code:
Überschrift1  Überschrift2
      1               2
      3               4
      5               6


Die Textbox soll am Ende eben so in der Art aussehen.

mfG
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: 26.11.2010, 03:10     Titel:
  Antworten mit Zitat      
Hallo gasmeister,
Zitat:

Code:
Überschrift1  Überschrift2
      1               2
      3               4
      5               6

Das ist nicht einfach! Die Darstellung von mehrspaltigen Text hängt immer von der Breite der einzelnen Buchstaben ab. Mit einem FixedWidth-Font läßt sich das aber steuern:
Code:
Head = {'Überschrift1', 'Überschrift2'};
Data = [1 2;  3 4;  5 6];
HeadStr = sprintf('%20s%20s\', Head{:});
DataStr = sprintf('     %10g          %10g     \n', transpose(Data));
AllStr = [HeadStr, DataStr];
 

Wenn Du eine Tabelle darstellen möchtest, ist UITABLE wohl eine bessere Idee. Eine TextBox (was genau ist das eigentlich? TEXT oder UICONTROL('Style', 'Text')?) ist nämlich eigentlich eine TextBox.

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 27
Anmeldedatum: 12.10.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.11.2010, 14:28     Titel:
  Antworten mit Zitat      
Jan S hat Folgendes geschrieben:
Hallo gasmeister,
Zitat:

Code:
Überschrift1  Überschrift2
      1               2
      3               4
      5               6

Das ist nicht einfach! Die Darstellung von mehrspaltigen Text hängt immer von der Breite der einzelnen Buchstaben ab. Mit einem FixedWidth-Font läßt sich das aber steuern:
Code:
Head = {'Überschrift1', 'Überschrift2'};
Data = [1 2;  3 4;  5 6];
HeadStr = sprintf('%20s%20s\', Head{:});
DataStr = sprintf('     %10g          %10g     \n', transpose(Data));
AllStr = [HeadStr, DataStr];
 

Wenn Du eine Tabelle darstellen möchtest, ist UITABLE wohl eine bessere Idee. Eine TextBox (was genau ist das eigentlich? TEXT oder UICONTROL('Style', 'Text')?) ist nämlich eigentlich eine TextBox.

Gruß, Jan


Perfekt, hat funktioniert, vielen Dank!

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