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

Histogramm erweitern

 

JohnLow

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.12.2009, 13:47     Titel: Histogramm erweitern
  Antworten mit Zitat      
Hallo liebes Forum,

ich hab zur Zeit ein Problem, dass ich nicht elegant lösen kann. Eine numerische Berechnung einer Differentialgleichung gibt mir einen Vektor x aus. Von diesem möchte ich das Histogramm hist(x) darstellen lassen, bzw stairs. So alles kein Problem.

Da ich die numerische Berechnung aber sehr lange laufen lassen möchte, schimpft Matlab, out of memory oder der Vektor x hat mehr als zugelassene Stellen.

Deswegen wiederhole ich die Simulation, ich hab nun n Simulationen und somit n Vektoren x1, x2 , ... xn und würde gern das Histogramm
hist([x1 x2 .... xn])
darstellen. Allerdings klappt das nicht, ich lösche nach jeder Berechnung j den Vektor xj wieder aus Platzgründen.

Gibt es eine Möglichkeit, eventuell über [n,p]=hist(x) oder ähnliche Befehle, ein Histogramm sozusagen nach und nach zu füllen??

LG


Harald
Forum-Meister

Forum-Meister


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

du kannst natürlich für jeden Vektor (oder eine gewisse Anzahl Vektoren) die Aufteilung nach bins ermitteln und diese dann aufsummieren und mit BAR plotten. Wichtig dabei dürfte sein, dass du immer die gleichen bins verwendest. Das kannst du über einen zusätzlichen Eingabevektor sicherstellen.

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

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.12.2009, 21:30     Titel:
  Antworten mit Zitat      
So richtig verstehe ich das nicht, bin kein Matlabprofi.

Ein kleines Beispiel wäre
------------------------------------
N=10^4;
x=zeros(N+1,1);
x(1)=1;

for i=1:N
x(i+1) = x(i)+randn;
end;

hist(x)
------------------------------------

Da N nun sehr hoch sein soll, gibt es Probleme bei zeros(N+1,1).
Wie macht man das mit der Aufteilung nach bins?
 
Harald
Forum-Meister

Forum-Meister


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

hier die Umsetzung deines Beispiels. Die Berechnung der Zufallszahlen über cumsum sollte wesentlich schneller als eine Schleife sein.

Code:
last = 1;
bins = -2000:20:2000;
n = zeros(size(bins));
for I = 1:100
    v = last + cumsum(randn(1e4,1));
    last = v(end);
    n = n + hist(v, bins);
end
bar(bins, n)


Zitat:
Wie macht man das mit der Aufteilung nach bins?

Aus dem Beispiel sollte es hervorgehen. Es ist übrigens auch in der Hilfe beschrieben.

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

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.12.2009, 13:23     Titel:
  Antworten mit Zitat      
Hallo,

vielen Dank. Das ist, was ich suchte Smile

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.