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

Quantile

 

frettchen

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.04.2013, 14:33     Titel: Quantile
  Antworten mit Zitat      
Hallo,

ich habe eine Reihe von Sportler-Geschwindigkeiten, dabei will ich immer jeweils die Besten und Schlechtesten 10%, 15% und 20 % ermitteln.
Wie zeichne ich die zugrundeliegende Verteilung mit beachtung der Reihenfolge sortieren

Zufallszahlen kann ich generieren, die als Sportlergeschwindigkeit dienen soll, doch rest ist noch fraglich
Code:
randi(10,1,100);
 


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 25.04.2013, 16:41     Titel: Re: Quantile
  Antworten mit Zitat      
Hallo frettchen,

Im nächsten Schritt musst Du eine Methode finden, um die schlechtesten/besten 10% irgendwie zu identifizieren. Wie würdest Du das denn von Hand machen?
Tipp: sort()

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

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.04.2013, 23:31     Titel:
  Antworten mit Zitat      
Ich müsste erstmal die Verteilung machen (du hast recht, mit Beachtung der Reihenfolge) [Zum Glück ist der Umgang der Stichprobe auch bekannt].

So grob den Gedankengang habe ich ja, mir ist nur wichtig, wie ich es jetzt umsetze.
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 26.04.2013, 10:07     Titel:
  Antworten mit Zitat      
Hallo frettchen,

Dann versuche doch mal, den groben Gedankengang in konkreten Code zu implementieren und stelle konkrete Fragen, wenn Probleme dabei auftreten.

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

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.04.2013, 21:33     Titel:
  Antworten mit Zitat      
Ich fand als kleiner Anhaltspunkt, sowas
Code:
x = randi(10,1,100);


Sorry aber ich kann das mit matlab nicht, das sortieren geht mit
Code:
sortiertenDaten = sort(x);


Code:
diff(sortiertenDaten) ~= 0
damit erkenne ich, wenn Werte mehrfach kommen

und die absolute Verteilung erzeuge ich mit
Code:
hist(sortiertenDaten)

ich kann es leider nciht
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.04.2013, 23:21     Titel:
  Antworten mit Zitat      
Ich bin dankbar für jede Hilfe und Information. Traut euch zu?
 
Andy386
Forum-Guru

Forum-Guru


Beiträge: 485
Anmeldedatum: 24.06.09
Wohnort: ---
Version: 7.1/8
     Beitrag Verfasst am: 28.04.2013, 14:33     Titel:
  Antworten mit Zitat      
was? was kannst du nicht?
Warum ist es von Interesse, was doppelt vorkommt? Wie soll sich das überhaupt ergeben können?

Tipp 2: doc sort
_________________

Ich hasse es wenn die Leute Fragen stellen, man dann versucht sich Mühe zu geben, und diejenigen ihren Thread nie wieder besuchen...
Private Nachricht senden Benutzer-Profile anzeigen
 
frettchen

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.04.2013, 19:27     Titel:
  Antworten mit Zitat      
Könnt ihr denn nicht ein Code-Vorschlag zu der ursprünglichen Aufgabe erstellen.

Code:
ich habe eine Reihe von Sportler-Geschwindigkeiten, dabei will ich immer jeweils die Besten und Schlechtesten 10%, 15% und 20 % ermitteln.
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 28.04.2013, 20:24     Titel:
  Antworten mit Zitat      
Code:
a=sort(randi(10,1,100));
p=10;
best=a(1:length(a)*p/100);

wenn doppelte zeiten raus sollen
Code:
Private Nachricht senden Benutzer-Profile anzeigen
 
frettchen

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.04.2013, 22:35     Titel:
  Antworten mit Zitat      
Ja ok;
Vielen Dank für dein Code. Ich habe ein Beispielvector erstellt (negative Werte sind auch dabei). Jetzt möchte ich nun folgendes ausprobieren.

Ich möchte die sortierte Verteilung plotten. Wie in der Grafik zu sehen würde ich gerne noch von links die 5% und von rechts die 5 Prozent in die Variable schreiben und grafisch gezeichnet haben erstellen.

Code:
y = [24.0 17.3 10.7 24.0 37.3 0.0 -16.7 -13.3 -13.4 -13.4 -13.4 -13.4 -13.4 -13.4 -33.3 0.0 0.7 56.0 56.0 56.0 56.0 46.0 36.0 26.0 16.0 36.0 56.0 0.0 -10.0 -20.0 -20.1];

 


Unbenannt.jpg
 Beschreibung:

Download
 Dateiname:  Unbenannt.jpg
 Dateigröße:  32.46 KB
 Heruntergeladen:  557 mal
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 29.04.2013, 01:14     Titel:
  Antworten mit Zitat      
Hallo frettchen,

Es ist nicht der Sinn des Forums, dass wir deine (Haus)aufgaben lösen.
Effizienter ist es, wenn du es zunächst selbst versuchst und dann konkrete Fragen stellst.

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

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.04.2013, 16:26     Titel:
  Antworten mit Zitat      
Ich bin auch dankbar, wenn ich Hilfestellungen bekomme. Vorschläge für den Ansatz wären sehr hilfreich.
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 29.04.2013, 16:57     Titel:
  Antworten mit Zitat      
Hallo frettchen,

Wenn du slebst gar keinen Zugang per Matlab findest, ist es kaum sinnvoll, wenn wir hier Zeit in die Lösung investieren. Denn dann kannst du auch keine notwendige Anpassungen nicht selbst vornehmen. Wenn Du möchtest, dass jemand das für dich löst, ist das Unterforum "Programmieraufträge" geeignet - mit einer angemessenen Vergütung.

Trotzdem nochmal ein kleiner Hinweis:
Du hast 100 Werte
Code:
T = randi(10, 1, 100);

Diese sortierst Du dann:
Code:
[sortedT, index] = sort(T);

Nun sind die ersten 10 Werte die schnellsten 10% und die ersten 10 "index" die dazugehörigen Indices:
Code:
sortedT(1:10)
index(1:10)

Ähnliches gilt für die besten 20% oder auch die schlechtesten 15% usw.

Und jetzt warte ich erst auf konkreten Code, bevor ich weiter antworte.

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

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.04.2013, 19:40     Titel:
  Antworten mit Zitat      
Nach langem Probieren habe ich folgenden Code produzieren können.
Die grafische Problematik mit den senkrechten Strichen (Ermittlung der Stelle 5 bzw. 95% auf der X-Achse) konnte ich nicht lösen.


Code:

clear all; clc;
s = rng;
y = randn(1,1000) ;

[sortedT, index] = sort(y);
prozentBest = round(length(y)*5/100); %Stellen gerundet darstellen
prozentBad = round(length(y)*95/100);
bestValue = sortedT(prozentBest)
%bestValue = min(sortedT(1:prozentBest))
badValue = sortedT(prozentBad)
%badValue = max(sortedT(prozentBad:end))
positionValueBest = index(prozentBest)
positionValueBad = index(prozentBad)

hist(sortedT,1000)
hold on
%line([positionValueBest positionValueBest],[0 0],'LineStyle','-'); %Senkrechter Strich
hold on
%line([positionValueBad positionValueBad],[0 0],'LineStyle','-');%Senkrechter Strich




 
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 29.04.2013, 20:01     Titel:
  Antworten mit Zitat      
Hallo,

die line-Befehle sind doch gar nicht so falsch. Wenn alle y-Werte einer Linie 0 sind, wird sie aber horizontal, nicht vertikal.
Eine horizontale Linie auf Höhe von x0:
Code:
line([x0, x0], [ymin, ymax])


Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen

Gehe zu Seite 1, 2, 3  Weiter

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.