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

> Formatierg. Tabelle rechtsbündig in Figure-plot

 

stoxxii

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.01.2014, 12:45     Titel: > Formatierg. Tabelle rechtsbündig in Figure-plot
  Antworten mit Zitat      
Halloo User-Gemeinde,
halloo Admins,

ich habe zur Demonstration ein kleines Zahlenbeispiel...
Code:

close all;
% ::::::::::::::::::::::::
Nam = {'unges.Fetts.','Kalorien','Vitamin','Haltbar','Preis'} ;
% ::::::::::::::::::::::::::
Mtx = Magic(5);
% :::::::::::::::::::::::::::::::::::::::::::::::::::
str11 = {'\bf >>  EigenVecs = Loadings'};
str22 = [ num2str(VecR,' %5.2f ')];
str33 = [char(Nam)  repmat(' ',size(Mtx,1),1) str22];
%
figure
subplot(121)
   plot(Mtx)
   hold on
   pause(1)
% :::::::::::::
text(6,13, str11);
text(6,10, str33);
 

Mein Wunsch wäre, das die Zahlen alle "rechtsbündig" erscheinen ....: Rolling Eyes
also ob es denn geht ??
Hatte auch schon diverse Zeichen-Kombinations probiert ...
>> keine Chance für mich ...

Auch habe ich auf die "blanks" dazwischen geachtet ...

würde mich über kleine Programmier-Tips freuen... Wink

Danke vorab für Zeit & Mühen.
best regards
stoxxii


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 12.01.2014, 00:28     Titel: Re: > Formatierg. Tabelle rechtsbündig in Figure-plot
  Antworten mit Zitat      
Hallo stoxxii,

Zitat:
Mein Wunsch wäre, das die Zahlen alle "rechtsbündig" erscheinen

Welche Zahlen sollen wo rechtsbündig erscheinen?
Sollen die beiden Strings am rechten Rand des AXES-Objektes erscheinen? Oder sollen beide Strings an der gleichen rechten Position enden? Oder sollen Leerzeichen eingefügt werden?

Zitat:
Hatte auch schon diverse Zeichen-Kombinations probiert

Bitte poste, was Du versucht hast.

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

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.01.2014, 15:47     Titel: > nicht an der Axes ausrichten , nur einfach rechtsbündi
  Antworten mit Zitat      
Halloo Jan S.,

ich habe solch eine Tabelle einfach in den freien Raum eines Figures reingeschoben... habe vielleicht subplot(221) und subplot(223) belegt ...
und dann auf der rechten freien Figure-Seite ein Tabelle geplottet ..

>> ach jetzt fällt mir ein , ich habe hier zur Vereinfachung nur eine Magic-Matrix reingekloppt und vergass,
das ich dabei bei num2str(VecR) ... eingesetzt hatte ... Soorryyy ... Crying or Very sad

Also vielleicht jetzt genauer mit der richtigen Matrix-Konstruktion :
Code:

Mtx = [ 1 2 4 5 2 3;...
          1 6 5 6 3 4;...
          2 3 4 6 3 4;...
          1 3 4 2 5 6;...
          2 4 5 3 7 7]';
CoR = corrcoef(Mtx);
[VecR EvR] = eig(CoR);
% :::::::::::::::::::::::::::::::::::::::::::::::::::
str11 = {'\bf >>  EigenVecs = Loadings'};
str22 = [ num2str(VecR,' %5.2f ')];
str33 = [char(Nam)  repmat(' ',size(Mtx,1),1) str22];
%
figure
subplot(121)
   plot(Mtx)
   hold on
   pause(1)
% :::::::::::::
text(6,13, str11);
text(6,10, str33);
 

Jetzt müßtest du sehen, das durch die Minuszeichen oder Anzahl Dezimalstellen, die Zahlen in der Tabelle nicht sauber untereinander rechtsbündig stehen ...
Rolling Eyes
Also ich meine:
nicht an einer Axes ausrichten oder soo ... nur innerhalb der Zahlentabelle ...

Danke vorab für Tips & Tricks...
beste grüße
stoxxii
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 12.01.2014, 17:43     Titel:
  Antworten mit Zitat      
Hallo,
selbst wenn man das Nam vom ersten Post dazunimmt, bekomme ich bei Ausführung deines Codes eine Fehlermeldung:
Zitat:
Error using horzcat
Dimensions of matrices being concatenated are not consistent.

Error in Untitled (line 12)
str33 = [char(Nam) repmat(' ',size(Mtx,1),1) str22];


Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
stoxxii

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.01.2014, 13:24     Titel: > i'm sorry, Variable "Nam" vergessen ...
  Antworten mit Zitat      
Halloo Forummeister,
Halloo Jan S.,

ich muss mich erneute entschuldigen, Confused
echt habe die Birne nicht frei , bin leider im moment unkonzentriert...

Also die Variable "Nam" fehlt noch
Code:

Nam = {'udo', 'Alf', 'Ive', 'eik', 'Ole'};
 


"Nam" muss 5 Elemente, Strings enthalten...
Am Ende müßtet Ihr nun die schief übereinanderstehenden
Zahlen in " text(6,10, str33); " sehen

danke vorab ... für eure Geduld...
beste grüße
stoxxii
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 13.01.2014, 13:59     Titel:
  Antworten mit Zitat      
Hallo


das musst eine Schriftart auswählen, wo die Zeichenbreite einheitlich ist
text(6,10, str33, 'FontName', 'FixedWidth');


Code:

Mtx = [ 1 2 4 5 2 3;...
          1 6 5 6 3 4;...
          2 3 4 6 3 4;...
          1 3 4 2 5 6;...
          2 4 5 3 7 7]';
       
 Nam = {'udo', 'Alf', 'Ive', 'eik', 'Ole'};
 
CoR = corrcoef(Mtx);
[VecR EvR] = eig(CoR);
% :::::::::::::::::::::::::::::::::::::::::::::::::::
str11 = {'\bf >>  EigenVecs = Loadings'};

s     = [Nam' num2cell(VecR)]';
str33 = sprintf('%s %5.2f %5.2f %5.2f %5.2f %5.2f\n', s{:} );

% str22 = [ num2str(VecR,' %5.2f ')];
% str33 = [char(Nam)  repmat(' ',size(Mtx,1),1) str22];
%
figure
subplot(121)
   plot(Mtx)
   hold on
   pause(1)
% :::::::::::::
text(6,13, str11);
text(6,10, str33, 'FontName', 'FixedWidth');
axis([0, 8 , 1, 15])
 
Private Nachricht senden Benutzer-Profile anzeigen
 
stoxxii

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.01.2014, 23:12     Titel: joo , vielen Dank ..
  Antworten mit Zitat      
halloo Denny,

vielen Dank für den Tip ... Wink

ich hatte auch verschiedene Schrift-Formate ausprobiert ...
aber eben nicht dieses und
naja, komplett sauber hätt ich es nie hingekriegt ...

beste grüße
stoxxii
 
stoxxii

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.01.2014, 09:54     Titel: >> kleine Erweiterung möglich ??
  Antworten mit Zitat      
Hallo Denny,
Hallo Jan S.,

ich möchte noch eine kleine Erweiterung einbauen...
die Tabelle sieht nun echt scharf aus ...

aber ein paar Zahlen wollte ich hervoben bzw. einrahmen ...

Dazu ist mir die folg. Variante eingefallen
Code:

plot(6, 6, 'bs', 'Linewidth',2)         % eventuell x-y-Koord. verschieben
 

Ist dieser Marker plaziert verrutscht quasi die gesamte Tabelle ...

Könnt ihr mir eine Korrektur oder gar eine andere Variante empfehlen ???
Rolling Eyes
Danke vorab für Zeit & Mühen...
Beste Grüße
stoxxii
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 14.01.2014, 14:59     Titel:
  Antworten mit Zitat      
Hallo

das kann man direkt im TEXT-Befehl machen, die Propperty heißt EdgeColor, siehe dazu mehr unter Text Poperties in der Doku
text(6,10, str33, 'FontName', 'FixedWidth','EdgeColor','black');


Code:

Mtx = [ 1 2 4 5 2 3;...
          1 6 5 6 3 4;...
          2 3 4 6 3 4;...
          1 3 4 2 5 6;...
          2 4 5 3 7 7]';
       
 Nam = {'udo', 'Alf', 'Ive', 'eik', 'Ole'};
 
CoR = corrcoef(Mtx);
[VecR EvR] = eig(CoR);
% :::::::::::::::::::::::::::::::::::::::::::::::::::
str11 = {'\bf >>  EigenVecs = Loadings'};

s     = [Nam' num2cell(VecR)]';
str33 = sprintf('%s %5.2f %5.2f %5.2f %5.2f %5.2f\n', s{:} );

% str22 = [ num2str(VecR,' %5.2f ')];
% str33 = [char(Nam)  repmat(' ',size(Mtx,1),1) str22];
%
figure
subplot(121)
   plot(Mtx)
   hold on
   pause(1)
% :::::::::::::
text(6,13, str11);
text(6,10, str33, 'FontName', 'FixedWidth','EdgeColor','black');
axis([0, 8 , 1, 15])

 
Private Nachricht senden Benutzer-Profile anzeigen
 
stoxxii

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.01.2014, 08:28     Titel: >> vielen dank für den Tip ...
  Antworten mit Zitat      
halloo Denny,

vielen Dank für den smarten Tip ... Wink

das kommt echt gut rüber ...
Sorry, wenn ich nochmal nachhake,

ginge das vielleicht nicht auch noch mit meiner plot-Variante , wenn
man die irgendwie manipuliert ???

danke ...

beste grüße
stoxxii
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 15.01.2014, 11:47     Titel:
  Antworten mit Zitat      
Hallo
Es würde auch mit den PLOT gehen, dazu musst man die Eckpunkte der Tabelle berechnen. Man kann dazu die Text-Property Extent nutzen

Nachteil: Beim Zoom verschiebt sich der Rahmen und auch Positionen in Extent stimmt nicht mehr.


Code:

Mtx = [ 1 2 4 5 2 3;...
          1 6 5 6 3 4;...
          2 3 4 6 3 4;...
          1 3 4 2 5 6;...
          2 4 5 3 7 7]';
       
 Nam = {'udo', 'Alf', 'Ive', 'eik', 'Ole'};
 
CoR = corrcoef(Mtx);
[VecR EvR] = eig(CoR);
% :::::::::::::::::::::::::::::::::::::::::::::::::::
str11 = {'\bf >>  EigenVecs = Loadings'};

s     = [Nam' num2cell(VecR)]';
str33 = sprintf('%s %5.2f %5.2f %5.2f %5.2f %5.2f\n', s{:} );

% str22 = [ num2str(VecR,' %5.2f ')];
% str33 = [char(Nam)  repmat(' ',size(Mtx,1),1) str22];
%
figure
subplot(121)
   plot(Mtx)
   hold on
   pause(1)
% :::::::::::::
axis([0, 8 , 1, 15])
text(6,13, str11);
h   = text(6,10, str33, 'FontName', 'FixedWidth');
pos = get(h,'Extent');

xleft  = pos(1);
yleft  = pos(2);

xright = pos(1) + pos(3);
yright = pos(2) + pos(4);

plot([xleft, xleft , xright, xright, xleft], [yleft, yright, yright, yleft, yleft],'r')


 
Private Nachricht senden Benutzer-Profile anzeigen
 
stoxxii

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.01.2014, 19:16     Titel: > jo , Danke nochmal ...
  Antworten mit Zitat      
Halloo Denny,

vielen Dan das du dir nochmal die zeit genommen hast,
für eine Alternative ...

grüße
stoxxii
 
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.