Verfasst am: 25.04.2015, 01:24
Titel: NaN und Matrixberechnungen
Hallo zusammen,
ich habe eine Figur in Matlab konstruiert, bestehend aus Punkten welche in X-, Y- und Z-Matrizen gespeichert werden. Damit die Figur passend aussieht, wurden ebenfalls leere Stellen mittels NaN definiert. Nun habe ich aber das Problem, dass ich mit den Matrizen nicht rechnen kann. Gibt es eine Möglichkeit die NaN-Stellen zu ignorieren?
Ich habe es schon mit "isnan()" versucht, leider ohne Erfolg.
Zum besseren Verständnis habe ich einen einfachen Beispielcode gescrhieben:
Servus Jan S,
vielen Dank für die rasche Antwort.
Mit ignorieren meine ich, dass Matlab das NaN nicht in die Berechnung mit einbezieht. Als Beispiel folgendes:
Ich will den Mittelwert der Vektoren ausrechen. Dabei möchte ich NaN nicht mit
Nan wird berücksichtigt und somit erhalte ich für den 2. Vektor keinen Mittelwert. Gibt es keine Möglichkeit für Matlab das NaN zu ignorieren und mir den Mittelwert der verbleibenden zwei Werte zu berechnen?
D.h.
Hallo Harald,
das hatte ich auch schon versucht. Leider sollte die Matrix immer noch eine NxM-Matrix bleiben. Mit nanmean() erhält man einfach ein array mit den Zahlenwerten.
Hi,
der Mittelwert war nur ein Beispiel. Lasst uns nochmal zurück gehen zum Ausgangsbeispiel (oben):
Da habe ich Punkte in X-, Y- und Z-Richtung definiert. Diese sollen mittels des surf()-Befehls einen 3D-Körper bilden. Damit der Körper die Form annimmt welche ich möchte, war es nötig, NaN-Punkte zu definieren.
Nun möchte ich von diesem Körper den Trägheitstensor (O ist im Schwerpunkt) und die neuen X-,Y- und Z-Werte berechnen, falls sich der Körper dreht.
Das Problem ist, dass alle 9 Werte des Tensors = NaN sind, was bei der Berücksichtigung der tatsächlichen Punktmassen nicht der Fall sein sollte.
Es ist zwar ungefähr verständlicher. Aber bei der allgemeinen Beschreibung als Text kann man auch nur allgemein in Text-Form antworten.
Wenn Du den bisherigen Code postest (einen relevanten Ausschnitt zumindest), könnte man sehr leicht Code-Vorschläge machen.
Das Beispiel mit MEAN war irreführend. Es raubt Zeit ein zu stark vereinfachtes Beispiel zu posten, dessen Lösung Dich nicht weiter bringt.
Wahrscheinlioch kannst Du bei Deiner Berechnung des Trägheitstensors die Werte von NaN auf 0 setzen, falls es sich um die Massen an den entsprechenden Punkten handelt.
Hallo zusammen,
entschuldigt für die späte Antwort, war im Urlaub.
Habe es nun hingekriegt, hatte einen Fehler woanders.
Vielen Dank für die Hilfe!
cinaja
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
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.