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

Median vom histogramm

 

Lilli

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.07.2008, 13:28     Titel: Median vom histogramm
  Antworten mit Zitat      
Hallo!

Ich habe mal ne einfache Frage. Und zwar lasse ich mir über ein Histogramm eine Datenreihe anzeigen. Nun möchte ich mir den Median ausgeben lassen.
So einfach wie den Maximalwert über [a i] = max () geht das leider nicht...
Hat jemand von euch eine gute einfache Idee???

Danke!!!!


Lilli

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.07.2008, 13:33     Titel:
  Antworten mit Zitat      
... also ich brauche die x-position des Medians wie man an dem Maximalbeispiel erkennen kann Wink

DANKE
 
steffi
Forum-Century

Forum-Century



Beiträge: 149
Anmeldedatum: 07.03.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.07.2008, 13:43     Titel:
  Antworten mit Zitat      
meinst du das:

Code:
a=[1 2 3 4 5];
b=median(a)

b =

     3

pos=find(a==b)

pos =

     3

 

?
_________________

Wenn ich bei der Arbeit mit Computern eins gelernt habe dann das ich einem Computer nur soweit traue wie ich ihn werfen kann.
Private Nachricht senden Benutzer-Profile anzeigen
 
Lilli

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.07.2008, 14:35     Titel:
  Antworten mit Zitat      
hm... nee... nicht so ganz. Ich mache noch mal ein Beispiel:

angenommen man hat diesen Plot:
Code:
x=[3:1:9];
y=[1 2 1 1 0 1 0];
stairs (x,y)


nun möchte ich die x-position rausfinden, die die Gesamtfläche in zwei Hälften zu jeweils 50% der Gesamtfläche teilt. Wie hier im Beispiel die 5.
 
steffi
Forum-Century

Forum-Century



Beiträge: 149
Anmeldedatum: 07.03.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.07.2008, 14:45     Titel:
  Antworten mit Zitat      
ich verstehe nicht ganz warum das bei dir 5 sein sollte?
_________________

Wenn ich bei der Arbeit mit Computern eins gelernt habe dann das ich einem Computer nur soweit traue wie ich ihn werfen kann.
Private Nachricht senden Benutzer-Profile anzeigen
 
Lilli

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.07.2008, 14:50     Titel:
  Antworten mit Zitat      
Weil links von der 5 dann der gleiche Flächeninhalt unter der Kurve ist wie rechts von der 5... hier sozusagen 3 Smile
 
steffi
Forum-Century

Forum-Century



Beiträge: 149
Anmeldedatum: 07.03.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.07.2008, 14:54     Titel:
  Antworten mit Zitat      
bei dem Bsp. das du oben angegeben hast ist für mich die 50%marke bei 6 und nicht 5
_________________

Wenn ich bei der Arbeit mit Computern eins gelernt habe dann das ich einem Computer nur soweit traue wie ich ihn werfen kann.
Private Nachricht senden Benutzer-Profile anzeigen
 
Lilli

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.07.2008, 15:01     Titel:
  Antworten mit Zitat      
hm...

ist es nicht über 3 bis 4 eine Fläche von 1
über 4 bis 5 eine Fläche von 2 => gibt zusammen 3,

und dann von 5 bis 6 eine Fläche von 1
von 6 bis 7 eine von 1
und von 8 bis 9 eine Fläche von 1 => gibt auch 3...

oder???
 
steffi
Forum-Century

Forum-Century



Beiträge: 149
Anmeldedatum: 07.03.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.07.2008, 15:27     Titel:
  Antworten mit Zitat      
du solltest mit

Code:
x_pos=x(find(y==median(y)))


weiterkommen, allerdings gestaltet sich dein Bsp. schwierig, weil du die 1 mehrfach vergeben hast. Vielleicht hilft dir der Code trotzdem für deine Anwendung, falls die natürlich nicht auch mehrere 1sen hat Smile
_________________

Wenn ich bei der Arbeit mit Computern eins gelernt habe dann das ich einem Computer nur soweit traue wie ich ihn werfen kann.
Private Nachricht senden Benutzer-Profile anzeigen
 
derOli
Forum-Meister

Forum-Meister


Beiträge: 579
Anmeldedatum: 19.03.08
Wohnort: Leipzig
Version: 2010a
     Beitrag Verfasst am: 08.07.2008, 12:45     Titel:
  Antworten mit Zitat      
Ich mache auch gerade sowas. Dabei bin ich auf das gleiche Problem gestoßen. Es gibt im grunde genommen keine standardisierte Median Position. Steffi trifft da das Hauptproblem schon ganz gut. Der Median ist ja eigentlich ein Wert und der kann ja mehrfach vorkommen, dh es gibt auch keine feste Position.

Ich habe das bei mir dann einfach Median Position genannt und einfach alle werte nacheinander kummulativ aufsummiert. Wenn dieser Wert geteilt durch die Gesamtsumme nahe über 50% ist kannst du ihn auswählen oder noch den nächsten von beiden nahe liegenden Werten wählen.

Naja was solls hier ist der Code:

Code:

val=0.5;     % min Mean Value
pct=[];

a = size(Fsum,2);

for i=1:a    
    sum1 =sum(Fsum(1:i));
    sum2 =sum(Fsum(i+1:a));
    pct(i) = sum1/(sum1+sum2);
end

tst = min(find(pct>val));
if tst ~= 1
    [z,w] = min([abs(pct(tst)-val);abs(pct(tst-1)-val)]);
    if w==1
        tst=tst;
    elseif w==2
        tst=tst-1;
    else
        'fehler'
    end;
end;
if ~isempty(tst)
    meanpos=tst;
else
    meanpos=0;
end;
 


Die Schleife oben könnte man noch abbrechen wenn man den wert gefunden hat, aber ich bilde auch noch andere Werte davon. Fsum ist der Eingangsvektor. Wenn dir noch ein besserer Name einfällt als Median Position lass es mich wissen. Aufjedenfall hat es wenig mit dem eigentlichen Median zu tun.

Gruß,

der Oli
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 - 2024 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.