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

Nullen bei mean ausschließen

 

Fabian1234
Forum-Anfänger

Forum-Anfänger


Beiträge: 36
Anmeldedatum: 09.11.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.10.2010, 13:07     Titel: Nullen bei mean ausschließen
  Antworten mit Zitat      
Hallo zusammen
ich habe ein kleines problem. ich möchte einen vektor mitteln, zB.

a = [1 2 0 4 5];

wenn ich jetzt

>> mean(a)

dann:

>>ans = 2.4000.

nun möchte ich aber, dass mean die "0" ausklammert, also den vektor so berechnet, als ob er
a = [1 2 4 5];

wäre.

das würde bei mean(a) = 3 ergeben.
ihr seht, dass die null eine ganze menge ausmacht. kennt jemand eine einfache methode, wie man die null ausschließen kann? vielleicht hat jemand auch ein proggy dazu geschrieben?
danke
fabian1234
Private Nachricht senden Benutzer-Profile anzeigen


Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 27.10.2010, 13:16     Titel:
  Antworten mit Zitat      
Code:


Andreas
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Fabian1234
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 36
Anmeldedatum: 09.11.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.10.2010, 13:17     Titel:
  Antworten mit Zitat      
die idee ist gut, aber nicht umsetzbar. ich habe einen vektor mit ein tausend zahlen mit gleitkommastellen.
Private Nachricht senden Benutzer-Profile anzeigen
 
Helmert
Forum-Century

Forum-Century


Beiträge: 121
Anmeldedatum: 04.09.08
Wohnort: Karlsruhe
Version: 2011a
     Beitrag Verfasst am: 27.10.2010, 13:20     Titel:
  Antworten mit Zitat      
Hier noch eine Möglichkeit:
Code:
Private Nachricht senden Benutzer-Profile anzeigen
 
Fabian1234
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 36
Anmeldedatum: 09.11.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.10.2010, 13:25     Titel:
  Antworten mit Zitat      
TUT! super, danke!
das ist echt einfach.
Private Nachricht senden Benutzer-Profile anzeigen
 
illywo

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.01.2012, 12:04     Titel: Punkte in Matrix ausschließen
  Antworten mit Zitat      
Hallo,

kurze Frage zur letzten Anmerkung. Wenn ich keinen Vektor sondern eine Matrix habe, in der ich, beispielsweise, nur Reihe 2 ohne Nullen haben will.

Gibt es einen Weg dies direkt umzusetzten ohne eine extra Variable zu erstellen, wie etwa so:

Code:

a = [0 0 2 3; 0 0 5 6];
z = a(2,:);
b = z(z~=0)
 


Gibt es also eine Möglichkeit b direkt aus a ohne den Umweg über z zu erstellen?

Gruß,

illywo
 
rainer87
Forum-Anfänger

Forum-Anfänger


Beiträge: 32
Anmeldedatum: 22.01.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.01.2012, 13:48     Titel:
  Antworten mit Zitat      
so?
Code:

ich weiß gerade nur nicht ob das ergebnis irgendwie sortiert wird oder so, dazu in die doc gucken..

ansonsten vielleicht noch für deinen mittelwert:
Code:

mean_ohne_nullen=sum(a)/nnz(a)

ich weiß nur nicht wie schnell das ist..
d.h. nonzeros könnte man vielleicht auch für deinen mittelwert benutzen..
Code:


wobei ich beim spontanen testen den eindruck hatte, dass das mit sum und nnz n ticken schneller ist.. aber nicht so viel
Private Nachricht senden Benutzer-Profile anzeigen
 
SebGast

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.02.2012, 15:55     Titel:
  Antworten mit Zitat      
@illywo:

So vielleicht:

Code:

b=a(2,a(2,:)~=0)
 
 
Minilee

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.09.2014, 08:08     Titel:
  Antworten mit Zitat      
Hallo!

Ich hätte auch eine kleine Frage dazu, wie kann man den Mittelwert von den Spalten ausrechnen ohne die Nullen?

Weil bei

sum(a)/nnz(a) enthält nnz(a) ja die Anzahl aller Werte ohne Nullen, möchte das aber immer nur jeweils auf die Spalte beziehen...

Also jede einzelne Spalte aufsummieren und dann durch die Anzahl alle Werte >0 ...

Gibts dazu einen einfachen Befehl?
 
Nras
Forum-Meister

Forum-Meister


Beiträge: 608
Anmeldedatum: 21.02.12
Wohnort: ---
Version: 7.12.0.635 (R2011a)
     Beitrag Verfasst am: 19.09.2014, 08:57     Titel:
  Antworten mit Zitat      
Hallo,

vielleicht soetwas:
Code:
A = [1,2,3
     0,0,4
     1,4,5]
 
 sum(A)./sum(A~=0)


Liefert die spaltenweisen Mittelwerte ohne Nullen
Code:
ans =

     1     3     4


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