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 einer Matrix mit NaN

 

acrodaniel
Forum-Anfänger

Forum-Anfänger


Beiträge: 24
Anmeldedatum: 26.05.11
Wohnort: Innsbruck
Version: ---
     Beitrag Verfasst am: 17.11.2011, 18:52     Titel: Median einer Matrix mit NaN
  Antworten mit Zitat      
Mein Problem ist ich habe einen X und eine Y wert eines koordinatensystem.

ich muss den MEDIAN aller Vectoren bilden, in der Matrix sind NaN´s.

X = [1 2 3 4 5 NaN 9 7 8];
Y = [2 4 5 7 8 NaN 9 7 8];

DIR = [X Y];

dirmedian = median(DIR);

wenn ich eine abfrage mache wo ich überprüfe ob der Wert für DIR isfinite ist dann bekomme ich nur einen WERT statt zwei.

danke für eure hilfe
_________________

cheers buddy
Private Nachricht senden Benutzer-Profile anzeigen


acrodaniel
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 24
Anmeldedatum: 26.05.11
Wohnort: Innsbruck
Version: ---
     Beitrag Verfasst am: 17.11.2011, 19:01     Titel:
  Antworten mit Zitat      
ich habe eine lösung gefunden aber leider funktioniert es mit meinen Daten nicht.

nanmedian

das problem bei dieser funktion ist das die werte double nicht bearbeitet werden :/
_________________

cheers buddy
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.502
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 17.11.2011, 19:06     Titel:
  Antworten mit Zitat      
Hallo,

ich verstehe nicht, was du erreichen möchtest und warum du es nicht erreichst. Bitte genauer erklären. Insbesondere "das die werte double nicht bearbeitet werden :/ "

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 24
Anmeldedatum: 26.05.11
Wohnort: Innsbruck
Version: ---
     Beitrag Verfasst am: 18.11.2011, 09:00     Titel:
  Antworten mit Zitat      
ich möchte den median bilden von verschiedenne Vectoren

Cartesisches koordinatensystem
X alle X werte der vectoren
y alle Y werte der Vectoren

das problem ist die fehlermeldung:
Undefined function or method 'nanmedian' for input arguments of type 'double'

ich hoffe das es eine bessere erklärung ist
_________________

cheers buddy
Private Nachricht senden Benutzer-Profile anzeigen
 
DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 18.11.2011, 09:10     Titel:
  Antworten mit Zitat      
Die Fehlermeldung lässt darauf schließen, dass dein Matlab die Funktion nicht kennt. Um nanmedian nutzen zu können, benötigst du die 'Statistics Toolbox'.
Wenn du sie nicht hast, wirst du dir was anderes überlegen müssen.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.502
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 18.11.2011, 09:39     Titel:
  Antworten mit Zitat      
Hallo,

ja, das ist in der Tat eine bessere Erklärung. Dies ist zwar ein deutschsprachiges Forum, ich halte es jedoch nicht für zweckmäßig, Fehlermeldungen zu übersetzen oder zu interpretieren; zitieren ist deutlich besser.

DSP hat bereits die wahrscheinliche Ursache des Problems angegeben. Eine Liste der installierten Produkte kannst du dir anzeigen lassen mit
Code:


Was spricht gegen
Code:
medianX = median(X(~isnan(X)))

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 24
Anmeldedatum: 26.05.11
Wohnort: Innsbruck
Version: ---
     Beitrag Verfasst am: 18.11.2011, 10:53     Titel:
  Antworten mit Zitat      
function [mittelwind] = mittelwind(D,V);

D=D + 90; % umwandlung in meteo grade;

anzahl = sum(isfinite(V));

D = degtorad(D);
X = V .* cos(D);
Y = V .* sin(D);

% [X,Y] = pol2cart(D,V);

DIR = [X Y];
dirsize = size(DIR);

xvecmedian = median(X(~isnan(X)))
yvecmedian = median(Y(~isnan(Y)))


wind = sqrt (xvecmedian ^2 + yvecmedian ^2)

winkelrad = yvecmedian ./ xvecmedian
THETA = atand(winkelrad);

THETA
% if (THETA > 360) THETA - 360;
% elseif (THETA < 0) THETA + 360;
% else THETA = THETA;
% end

wind = num2str(wind, '%5.2f');
THETA = num2str(THETA, '%5.2f');
mittelwind = ['Vmedian: ' wind, ' m/s', ' ', THETA, '°']
end


das ist meine aktuelle version der funktion

leider erhalte ich für Yvecmedian einen unrealistischen wert mit über 194 m/s

funktioniert leider auch noch nicht so ganz
_________________

cheers buddy
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.502
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 18.11.2011, 11:02     Titel:
  Antworten mit Zitat      
Hallo,

Bitte die Code-Umgebung verwenden.

Warum du den unrealistischen Wert bekommst, kann ich dir leider so auch nicht beantworten. Vorschlag: schau dir mal ein Histogramm von Y an.

Kann es sich vielleicht auch um ein Einheitenproblem handeln?

Zitat:
funktioniert leider auch noch nicht so ganz

Solche Aussagen sind recht unbrauchbar. Was funktioniert nicht? Welche Fehlermeldungen bekommst du? Falls keine: welche Ergebnisse bekommst du, welche erwartest du?

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

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 18.11.2011, 11:03     Titel:
  Antworten mit Zitat      
sicher das das mit den +90 so richtig is? glaube der winkel sollte in rad angegeben werden
Private Nachricht senden Benutzer-Profile anzeigen
 
acrodaniel
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 24
Anmeldedatum: 26.05.11
Wohnort: Innsbruck
Version: ---
     Beitrag Verfasst am: 18.11.2011, 11:49     Titel:
  Antworten mit Zitat      
anbei mein programm:

realistisch wären werte von max 10m/s

der code der funktion befindet sich ganz unten im program

main_winddata.zip
 Beschreibung:

Download
 Dateiname:  main_winddata.zip
 Dateigröße:  6.15 MB
 Heruntergeladen:  858 mal

_________________

cheers buddy
Private Nachricht senden Benutzer-Profile anzeigen
 
acrodaniel
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 24
Anmeldedatum: 26.05.11
Wohnort: Innsbruck
Version: ---
     Beitrag Verfasst am: 18.11.2011, 11:50     Titel:
  Antworten mit Zitat      
den winkel habe ich schon in Rad umgewandelt

D = degtorad(D);
_________________

cheers buddy
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.502
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 18.11.2011, 12:42     Titel:
  Antworten mit Zitat      
Hallo,

du erwartest nicht ernsthaft, dass sich jemand hier 1400 Zeilen Code anschaut?

Dringende Empfehlung: sauberen Code schreiben! Die rechte Seite des Editors zeigt bei mir fast durchgehend orange - lauter Vorschläge zur Verbesserung des Codes.

Ich habe durch Zufall die relevanten Zeilen gefunden und bei Zeile 1412 einen Haltepunkt gesetzt. Dann
Code:
hist(Y)
nnz(Y > 194)
nnz(Y < 194)


Schlussfolgerung: der Median von Y ist bei 194. Wenn er das nicht sein soll, wurden die Daten zuvor falsch übergeben oder ausgewertet.

Grüße,
Harald
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.