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

barplot einer matrix mit fehlerbalken

 

karle

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.08.2012, 15:59     Titel: barplot einer matrix mit fehlerbalken
  Antworten mit Zitat      
Hallo!
ich bin am verzweifeln!

ich habe eine matrix 3x7. diese plotte ich mit bar und erhalte ein balkendiagramm mit 3 gruppen a 7 balken.

nun möchte ich die fehlerbalken zu diesen werten bringen.
dazu habe ich die fehler ebenfalls in einer 3x7-matrix.
wenn ich nun errorbar anwende, werden alle fehlerbalken gebündelt in der mitte der drei gruppen dargestellt.
irgenwie müssen diese verschoben werden.

dazu habe ich jetzt lange nachgeforscht und folgendes gefunden und auf mein beispiel angewandt (GESAMT_links und GESAMT_std_links sind oben erwähnte matrizen):

Code:

[M,N] = size(GESAMT_links);
h = bar(GESAMT_links);
hx = get(h, 'XData');
x = [hx{:}];
x = reshape(mean(x(2:3,:)),M,N);
set(gca, 'XLim', [0 (length(GESAMT_links)+1)]);
errorbar(x, GESAMT_links, GESAMT_std_links, 'linestyle','none');
 


ich bekomme für die zeile x = reshape... stets die meldung "Index exceeds matrix dimensions."
hier werden die reihen 2 und 3 angesprochen, die allerdings gar nicht existieren, wenn ich das richtig interpretiere!

wenn ich das nun aber in
Code:
x = reshape(mean(x(:,2:3)),M,N);
ändere, bekomm ich stets die meldung "Error using reshape
To RESHAPE the number of elements must not
change."

als kleine anmerkung noch ein kommentar aus der quelle:
Zitat:
"To place each error bar at the top-center of the corresponding box,
the mean of the 2nd and 3rd rows of [hx{:}] is helpful."


der link der quelle: https://www.mathworks.com/matlabcen.....sreader/view_thread/16510


hilfe! mein kopf brennt und ich könnt echt kotzen grad!
bitte, sag mir einer was falsch ist, oder wie ich mein problem ganz anders lösen kann! bitte!

vielen dank,
beste grüße,

karle


karle

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 31.08.2012, 08:59     Titel:
  Antworten mit Zitat      
Hallo,

über eine Antwort bzw. einen Vorschlag würde ich mich noch immer richtig freuen!!!

Danke!
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 31.08.2012, 11:15     Titel: Re: barplot einer matrix mit fehlerbalken
  Antworten mit Zitat      
Hallo karle,

Das Problem liegt ja in:
Code:
x = reshape(mean(x(2:3,:)),M,N);

"x(2:3, :)" ist eine [2 x ?] Matrix. MEAN() berechnet nun den Mittelwert über die erste Dimension, so dass das Ergebnis ein [1 x ?] Vektor ist. Wenn nun das mir unbekannte "?" nicht exakt M*N ist, kann man diesen Vektor auch nicht in eine [M x N] Matrix reshapen. Daher die Medlung "the number of elements must not change".
Falls "x" aber gar nicht 3 Zeilen besitzt, erzeugt "x(2:3, :)" die "Index exceeds matrix dimensions" Meldung.

Am besten schaust Du Dir die Größe von "x" im Debugger an.
Private Nachricht senden Benutzer-Profile anzeigen
 
karle

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.09.2012, 16:56     Titel:
  Antworten mit Zitat      
Hallo Jan,
vielen Dank für deine Antwort. Leider hatte ich die letzten Tage nicht die Muße mich erneut mit dem Problem zu beschäftigen. scheiss erkältung mitten im hochsommer! Ich weiß allerdings nicht so recht, was ich mit einer Antwort anfangen soll.
Sollte x nicht die entsprechende Größe haben, ist mein problem noch immer nicht gelöst! ich komm nicht dahinter, wie ich dies lösen kann.

hast du, oder gerne auch jemand anderes, denn keinen lösungsvorschlag?

nochmal: ich habe ein balkendiagramm und möchte fehlerbalken anbringen. hast noch niemand dieses problem gehabt? ich kann fast nicht glauben!
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 06.09.2012, 09:44     Titel:
  Antworten mit Zitat      
Hallo karle,

Ja, meine Antwort war keine Lösung deines Problems. Ich habe gezeigt, wo der Fehler in der Zeile liegt. Verbessern müsstest Du es dann schon selbst.

Wenn Du das MEAN weglässt, funktioniert es zumindest:
Code:

Da ich aber nicht verstehe, wozu das MEAN dienen soll, kann ich kaum spekulieren, ob du das so einfach weglassen möchtest.
Das Ergebnis sieht jedenfalls nach Error-Bars aus, aber zumindest mit meinen per RAND() erzeugten Testdaten ist es nicht gerade aussagekräftig.

Wie immer bei solchen Standard-Problemen empfehle ich ein Blick in Matlab's FileExchange: https://www.mathworks.com/matlabcen.....hange/index?term=errorbar. Dort findest Du einige lauffähige Beispiele.

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.