|
|
|
Median einer Matrix mit NaN |
|
| acrodaniel |

Forum-Anfänger
|
 |
Beiträge: 24
|
 |
|
 |
Anmeldedatum: 26.05.11
|
 |
|
 |
Wohnort: Innsbruck
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 17.11.2011, 18:52
Titel: Median einer Matrix mit NaN
|
 |
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
|
|
|
|
|
|
| acrodaniel |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 24
|
 |
|
 |
Anmeldedatum: 26.05.11
|
 |
|
 |
Wohnort: Innsbruck
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 17.11.2011, 19:01
Titel:
|
 |
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
|
|
|
|
| Harald |

Forum-Meister
|
 |
Beiträge: 24.502
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 17.11.2011, 19:06
Titel:
|
 |
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
|
|
|
|
| acrodaniel |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 24
|
 |
|
 |
Anmeldedatum: 26.05.11
|
 |
|
 |
Wohnort: Innsbruck
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 18.11.2011, 09:00
Titel:
|
 |
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
|
|
|
|
| DSP |

Forum-Meister
|
 |
Beiträge: 2.117
|
 |
|
 |
Anmeldedatum: 28.02.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: R2014b
|
 |
|
|
 |
|
Verfasst am: 18.11.2011, 09:10
Titel:
|
 |
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.
|
|
|
|
| Harald |

Forum-Meister
|
 |
Beiträge: 24.502
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 18.11.2011, 09:39
Titel:
|
 |
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
Was spricht gegen
Grüße,
Harald
|
|
|
|
| acrodaniel |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 24
|
 |
|
 |
Anmeldedatum: 26.05.11
|
 |
|
 |
Wohnort: Innsbruck
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 18.11.2011, 10:53
Titel:
|
 |
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
|
|
|
|
| Harald |

Forum-Meister
|
 |
Beiträge: 24.502
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 18.11.2011, 11:02
Titel:
|
 |
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
|
|
|
|
| Winkow |

Moderator
|
 |
Beiträge: 3.842
|
 |
|
 |
Anmeldedatum: 04.11.11
|
 |
|
 |
Wohnort: Dresden
|
 |
|
 |
Version: R2014a 2015a
|
 |
|
|
 |
|
Verfasst am: 18.11.2011, 11:03
Titel:
|
 |
|
sicher das das mit den +90 so richtig is? glaube der winkel sollte in rad angegeben werden
|
|
|
|
| acrodaniel |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 24
|
 |
|
 |
Anmeldedatum: 26.05.11
|
 |
|
 |
Wohnort: Innsbruck
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 18.11.2011, 11:49
Titel:
|
 |
anbei mein programm:
realistisch wären werte von max 10m/s
der code der funktion befindet sich ganz unten im program
| Beschreibung: |
|
 Download |
| Dateiname: |
main_winddata.zip |
| Dateigröße: |
6.15 MB |
| Heruntergeladen: |
858 mal |
_________________
cheers buddy
|
|
|
|
| acrodaniel |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 24
|
 |
|
 |
Anmeldedatum: 26.05.11
|
 |
|
 |
Wohnort: Innsbruck
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 18.11.2011, 11:50
Titel:
|
 |
den winkel habe ich schon in Rad umgewandelt
D = degtorad(D);
_________________
cheers buddy
|
|
|
|
| Harald |

Forum-Meister
|
 |
Beiträge: 24.502
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 18.11.2011, 12:42
Titel:
|
 |
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
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
|
|
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
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
| 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.
|
|