Moin!
Ich programmiere grade ein kleines Spiel mit Matlab. Dafür habe ich ein Cell-Array namen, in dem die einzelnen Spielernamen abgespeichert sind und einen Vektor punkte, in dem die einzelnen Punktestände abgespeichert sind. Jetzt möchte ich nach jeder Runde übersichtlich den Spielstand anzeigen, also eine Art Tabelle, in der man die Namen und daneben die entsprechenden Punkte anzeigt. Bisher habe ich das so gelöst:
fprintf('Name\t|\tPunkte\n');
fprintf('------------------\n');
for n = 1:1:anzahlspieler
fprintf('%s\t|\t%g\n',namen{1,n},punkte(n));
end
Das klappt bei normalen Namen auch ganz gut. Wenn jetzt aber ein etwas längerer und ein etwas kürzerer Name dabei ist, zb Christian oder Jan, dann hauen die Tabulatoren nicht mehr hin und die Trennstriche, also die |, sind alle auf einer anderen Position und das ganze sieht nicht mehr wirklich nach einer Tabelle aus.
Weiß jemand wie ich die Tabulatoren richtig setzen kann, damit alles in Reih und Glied ist? Habe schon länger rumgespielt, aber leider ohne Erfolg.
Alternativ bin ich auch für weitere Funktionen oder Befehle offen, die mir eine schöne Tabelle ins Command Window zaubern.
Vielen Dank im Voraus!
Matlab Tabulatoren/Tabelle
Moderator: (M) Mod.-Team Allgemein
Hi selma,
ich habe etwas ähnliches mal in Matlab gemacht. Das ganze sah ungefähr so aus:
Musst du dann noch ein bisschen rumspielen denke ich.
Viele Grüße,
Axel
ich habe etwas ähnliches mal in Matlab gemacht. Das ganze sah ungefähr so aus:
Code: Alles auswählen
f = figure('Position',[200 200 700 150]);
grid off;
axis off;
dat = [10,12,4];
cnames = {'Funktionsauswertungen','Erfolgreiche Schritte','Nicht erfolgreiche Schritte'};
t = uitable('Parent',f,'Data',dat,'ColumnName',cnames,'Position',[20 20 500 100]);
Viele Grüße,
Axel
Moin,
da MATLAB die meisten C-Funktionen übernommen hat, würde ich folgendes verwenden:
%+10.10s
also
fprintf('%+10.10s|\t%g\n',namen{1,n},punkte(n));
mind. 10 Zeichen, max. 10 Zeichen -> Einheitliche länge. Der Rest wird mit Leerzeichen aufgefüllt. Das + richtet nach rechts aus, ein - richtet nach links aus.
Ich habe außerdem mal eine Funktion geschrieben, die von MATLAB zu einer LaTeX-Tabelle übersetzt, falls du da interesse dran hast.
da MATLAB die meisten C-Funktionen übernommen hat, würde ich folgendes verwenden:
%+10.10s
also
fprintf('%+10.10s|\t%g\n',namen{1,n},punkte(n));
mind. 10 Zeichen, max. 10 Zeichen -> Einheitliche länge. Der Rest wird mit Leerzeichen aufgefüllt. Das + richtet nach rechts aus, ein - richtet nach links aus.
Ich habe außerdem mal eine Funktion geschrieben, die von MATLAB zu einer LaTeX-Tabelle übersetzt, falls du da interesse dran hast.