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

mean und "NaN"

 

Fabian1234
Forum-Anfänger

Forum-Anfänger


Beiträge: 36
Anmeldedatum: 09.11.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.03.2010, 16:02     Titel: mean und "NaN"
  Antworten mit Zitat      
Hallo Zusammen.
Ich sitze an der Auswertung einer Studie und habe ein kleines Problem mit "NaN". Und zwar habe ich eine riesige dreidimensionale Tabelle, z.B.

a(:,:,1) = [1 2 3 4 5 100 5 4 3 2 1],
a(:,:,2) = [1 2 3 4 5 0 5 4 3 2 1],

usw.

in der ich mittels der 3sigma-Regel Extremwerte aussortiere. Ich habe mir ein Proggy gebastelt, das die Extremwerte durch NaN ersetzt, also:

a(:,:,1) = [1 2 3 4 5 NaN 5 4 3 2 1],
a(:,:,2) = [1 2 3 4 5 0 5 4 3 2 1],

Aus der Tabelle möchte ich dann zeilenweise die Mittelwerte ziehen. Leider geht das mit "mean" nicht, da Mean für die Zeile a(1,:,Smile den Wert

"Nan" ausgibt.

Kennt jemand eine funktion, die die Anzahl der NaNs in einer Population aussiebt und aus den verbliebenen Werten das korrekte arithmetische Mittel zieht?

Bin hierbei ein bisschen verzweifelt und freue mich über hilfe.

Grüße
Fabian
Private Nachricht senden Benutzer-Profile anzeigen


Zenon
Forum-Guru

Forum-Guru


Beiträge: 292
Anmeldedatum: 20.01.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.03.2010, 16:30     Titel:
  Antworten mit Zitat      
Wie wäre es wenn Du die Extremwerte für diese Berechnung statt NaN zu setzen einfach mit [] aus der Zeile nimmst...also erst die Zeile in nen Vektor schreiben dann die Stelle vom NaN mit [] löschen und den Mittelwert berechnen...natürlich wird dann bei der Mittelwertbildung auf Anzahl-1 zugrundegelegt...
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: 25.03.2010, 19:00     Titel:
  Antworten mit Zitat      
Hallo,

in der Statistics Toolbox gibt es die Funktion nanmean.

zenon: das Problem beim Setzen auf [] ist, dass eine komplette Zeile/Spalte gelöscht werden müsste.

Wenn man über nanmean geht, ist das nicht der Fall.

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

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.11.2011, 13:45     Titel: NaN finden
  Antworten mit Zitat      
ich hätte da auch eine Frage zu NaN und hoffe, dass ich sie heir an der richtigen Stelle stelle Wink

ich würdegerne mit einer Matrix arbeiten, die einige NaN enthält. Ich möchte gerne wissen wieviel (bzw. wieviel% - falls das geht) und dan gehts weiter.


Bisher habe ich folgendes gemacht:
Code:

for i=1:length(Tiefe)
   
    L1(:,i)=length(Matrix(:,i)); %Um zu wissen wie lang die Spalten normalerweise sind
    L2(:,i)=isnan(segment_Var(:,i)); %um zu sehen wo ich nan habe
   
end
 


Jetzt möchte ich gerne wissen wie lang sind die Spalten ohne NaN (also wievviele Werte habe ich jeweils).
Und dann würde ich gerne noch ein if einbauen: Bei mehr als 60% NaN pro Spalte mach.... oder...

Wäre toll, wenn mir jemand helfen kann. Ich probiere natürlich auch selber weiter.
Danke
 
soad
Forum-Century

Forum-Century


Beiträge: 150
Anmeldedatum: 10.11.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.11.2011, 15:13     Titel:
  Antworten mit Zitat      
Mit
Code:
n = sum(isnan(Matrix(:))); % Anzahl für gesamte Matrix
bzw.
n = sum(isnan(Matrix)); % Anzahl pro Spalte
 

erhältst du die Anzahl der NaN-Elemente.

Jetzt kannst du durch die Gesamtanzahl der Matrix bzw. durch die Spaltenlänge dividieren (ist für die gesamte Matrix gleich), um die Anteile an NaN-Elementen zu erhalten. Hier wird dir der SIZE-Befehl helfen, siehe:
Code:
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.