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

Wertepositionen festellen

 

pariser

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.05.2013, 22:46     Titel: Wertepositionen festellen
  Antworten mit Zitat      
Ich habe ein Vector mit 1000 double Werten, wobei auch NaN zu finden find.

Es soll eine Reihe von Sportler-Geschwindigkeiten (Zeiten) modelliert werden, dabei will ich immer jeweils die Besten und Schlechtesten 10%, 15% und 20 % ermitteln.

Jedoch habe ich auch Sportler, die abgebrochen haben (die würde ich mit NaN modellieren)?

Hat jemand Ahnung wie ich das Umsetzen könnte.

Hinweis: Wenn viele Leute abgebrochen haben, dann möchte ich bei den schlechtesten nicht NaN als Output haben, sondern den nächsten möglichen double Wert


Mmmartina
Forum-Meister

Forum-Meister


Beiträge: 745
Anmeldedatum: 30.10.12
Wohnort: hier
Version: R2020a
     Beitrag Verfasst am: 22.05.2013, 09:46     Titel: Re: Wertepositionen festellen
  Antworten mit Zitat      
pariser hat Folgendes geschrieben:
Hat jemand Ahnung wie ich das Umsetzen könnte.


Ja.

Was hast DU dir denn schon für Gedanken gemacht? Welche Lösungsschritte, welche Ansätze und welche Codefragmente, etc.?
_________________

LG
Martina

"Wenn wir bedenken, daß wir alle verrückt sind, ist das Leben erklärt." (Mark Twain))
Private Nachricht senden Benutzer-Profile anzeigen
 
pariser

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.05.2013, 15:02     Titel:
  Antworten mit Zitat      
Zitat:
Was hast DU dir denn schon für Gedanken gemacht? Welche Lösungsschritte, welche Ansätze und welche Codefragmente, etc.?


Auf diese Rückmeldung habe ich mein Code gepostet:

Code:
clear all; clc;
s = rng;
y = [NaN 23 43234 235 46 4564 677 6767  88678 7 68 7 NaN NaN NaN NaN]

[sortedT, index] = sort(y);
prozentBest = round(length(y)*5/100);
prozentBad = round(length(y)*95/100);
bestValue = sortedT(prozentBest)
badValue = sortedT(prozentBad)
positionValueBest = index(prozentBest)
positionValueBad = index(prozentBad)




Als Ansatz dachte ich mir, dass ich naNs ignoriere, doch dann funktioniert es nicht
Code:


Die Werte sollen ja nicht ignoriert werden, sondern der nächste gültige valide Wert angenommen werden
 
fekal
Forum-Century

Forum-Century



Beiträge: 124
Anmeldedatum: 08.02.11
Wohnort: Mainz
Version: 2017b
     Beitrag Verfasst am: 27.05.2013, 16:31     Titel:
  Antworten mit Zitat      
Da Wuerde ich immer mit den min und max deines Vektors rechnen.
multiplizier den Wert mit den entsprechenden Prozent (*0.15) und sag sowas wie

Code:

n=0.15; %Grenze
x=(min(Y)*n); %Grenze setzen
B=Y>=x; %werte in Vektoren sortieren

 

So oder so aehnlich.
Is nix dolles aber vielleicht ein Start. Da haste dann in einer Variable alle Werte die deine Grenze ueber bzw. unterschreiten.
Na, kannst ja mal in die Richtung weiter machen.


Gruss
fekal
Private Nachricht senden Benutzer-Profile anzeigen
 
pariser

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.05.2013, 16:53     Titel:
  Antworten mit Zitat      
sehr nett, dass du es immerhin versucht die Aufgabenstellung zu verstehen ;D

ich werde es ausprobieren..
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 27.05.2013, 17:57     Titel:
  Antworten mit Zitat      
Hallo

Man kann schlecht Tipps geben, wenn man nicht versteht, was du erreichen möchtest und wo genau du Schwierigkeiten hast.

vielleicht willst du das machen?
Code:
y = [NaN 23 43234 235 46 4564 677 6767  88678 7 68 7 NaN NaN NaN NaN]

% Positionen der Abbrecher merken
posnan            = isnan(y);
[sortedT, index]  = sort(y);
% nan werte ignorieren
y_red             = sortedT(~posnan(index))

prozentBest       = round(length(y_red)*5/100);
prozentBad        = round(length(y_red)*95/100);
bestValue         = sortedT(prozentBest)
badValue          = sortedT(prozentBad)
positionValueBest = index(prozentBest)
positionValueBad  = index(prozentBad)
 
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 28.05.2013, 05:38     Titel:
  Antworten mit Zitat      
Hallo pariser,

Ich habe diejenigen Beiträge aus diesem Thread entfernt, die nichts mit Matlab zu tun haben.

Wenn auch mehreren Rückfragen nicht helfen, die eigentliche Frage klar zu stellen, oder wenn der http://www.gomatlab.de/der-kleine-gomatlab-de-knigge-t125.html und http://www.gomatlab.de/faq-richtig-fragen-t6534.html auch weiterhin nicht beachtet wird, entferne ich den Thread ganz.

Ein respektvoller Umgang mit anderen Personen und deren freiwillig angebotenen Arbeitszeit wird hier erwartet.

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.