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

Mittelwert Zeilenvektor

 

stevorino
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 95
Anmeldedatum: 06.12.11
Wohnort: ---
Version: R2007b
     Beitrag Verfasst am: 23.05.2012, 12:36     Titel: Mittelwert Zeilenvektor
  Antworten mit Zitat      
Hallo Zusammen,

stehe vor einer Herausforderung.
Ich habe zwei Zeilenvektoren (1x17000).

Der eine Vektor A hat Werte von 0 (Min) bis 15 (Max), wobei etwa 70% zwischen 0 und 1 liegt. Jetzt möchte ich gerne Mittelwerte bilden. Also alle Werte zwischen 0 und 1, zwischen 1 und 2, ..., zwischen 14 und 15 mitteln. Das müsste aber für den anderen Vektor B auch geschehen. Das heißt, alle Zellen, die von Vektor A gemittelt werden, müssten auch bei Vektor B gemittelt werden, weil ich die beiden Vektoren miteinander vergleichen möchte.

Ich hoffe auf Eure Hilfe,
Stno
Private Nachricht senden Benutzer-Profile anzeigen


stevorino
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 95
Anmeldedatum: 06.12.11
Wohnort: ---
Version: R2007b
     Beitrag Verfasst am: 23.05.2012, 12:39     Titel:
  Antworten mit Zitat      
Also wie ich Wertebereiche suchen kann, weiß ich schon:

Code:
WB=find(A>=0&A<1);


Das wären alle Werte zwischen 0 und 1.

Jetzt möchte ich gerne aus diesem Wertebereich den Mittelwert berechnen und zugleich auch für den gleichen Wertebereich des Vektors B.

Viele Grüße,
Stno
Private Nachricht senden Benutzer-Profile anzeigen
 
stevorino
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 95
Anmeldedatum: 06.12.11
Wohnort: ---
Version: R2007b
     Beitrag Verfasst am: 23.05.2012, 12:53     Titel:
  Antworten mit Zitat      
ok versuche es besser anhand von zwei vektoren zu erklären:

Vektor A: [0.2 0.4 0.3 1.4 0.2 0.3 0.8 2.3 1.2 ...]

Vektor B: [13 12 16 22 23 22 18 12 18 ...]

Ich möchte gerne alle Werte zwischen 0 und 1 von Vektor A mitteln,
also:

(0.2 + 0.4 + 0.3 + 0.2 + 0.3 + 0.8 ) dividiert durch 6

und die entsprechenden Wertepaare aus Vektor B ebenfalls,
also:

(13 + 12 + 16 + 23 + 22 + 18 ) dividiert durch 6

Danke,
Stno
Private Nachricht senden Benutzer-Profile anzeigen
 
Vito
Forum-Guru

Forum-Guru


Beiträge: 315
Anmeldedatum: 02.11.09
Wohnort: Stuttgart
Version: ---
     Beitrag Verfasst am: 23.05.2012, 13:19     Titel:
  Antworten mit Zitat      
Hi,

das löst du so:
Code:

>> A= [0.2 0.4 0.3 1.4 0.2 0.3 0.8 2.3 1.2]

A =

    0.2000    0.4000    0.3000    1.4000    0.2000    0.3000    0.8000    2.3000    1.2000

>> B=[13 12 16 22 23 22 18 12 18]

B =

    13    12    16    22    23    22    18    12    18

>> WB=find(A>=0&A<1)

WB =

     1     2     3     5     6     7

>> mittel_A = mean(A(WB))

mittel_A =

    0.3667

>> mittel_B = mean(B(WB))

mittel_B =

   17.3333
 


Gruß,
Vito
Private Nachricht senden Benutzer-Profile anzeigen
 
stevorino
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 95
Anmeldedatum: 06.12.11
Wohnort: ---
Version: R2007b
     Beitrag Verfasst am: 23.05.2012, 13:26     Titel:
  Antworten mit Zitat      
Danke, Vito!

That's what I was looking for.
Private Nachricht senden Benutzer-Profile anzeigen
 
stevorino
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 95
Anmeldedatum: 06.12.11
Wohnort: ---
Version: R2007b
     Beitrag Verfasst am: 23.05.2012, 13:39     Titel:
  Antworten mit Zitat      
kann man das auch noch in eine Schleife packen?

muss das nämlich für 0-1, 1-2, 2-3, ..., 39-40 machen.

Danke
Private Nachricht senden Benutzer-Profile anzeigen
 
Vito
Forum-Guru

Forum-Guru


Beiträge: 315
Anmeldedatum: 02.11.09
Wohnort: Stuttgart
Version: ---
     Beitrag Verfasst am: 23.05.2012, 14:22     Titel:
  Antworten mit Zitat      
Hi,

die Schleife ist doch nicht die Welt Very Happy
Code:

anf = [0:1:40];
for k = 1:anf-1
    WB = find(A>=anf(k) & A<anf(k+1));
    Mittel_A(k) = mean(A(WB));
    Mittel_B(k) = mean(B(WB));
end
 


Gruß,
Vito
Private Nachricht senden Benutzer-Profile anzeigen
 
stevorino
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 95
Anmeldedatum: 06.12.11
Wohnort: ---
Version: R2007b
     Beitrag Verfasst am: 23.05.2012, 14:36     Titel:
  Antworten mit Zitat      
mit Schleifen tu ich mir komischerweise immer schwer, aber schon langsam wird es besser.
Übung (und Unterstützung Fortgeschrittener) macht den Meister

Danke
Private Nachricht senden Benutzer-Profile anzeigen
 
stevorino
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 95
Anmeldedatum: 06.12.11
Wohnort: ---
Version: R2007b
     Beitrag Verfasst am: 23.05.2012, 15:38     Titel:
  Antworten mit Zitat      
hab den code gerade ausprobiert. Scheint zu funktionieren, aber die Mittelwerte werden nicht in einen Vektor geschrieben. ???
Private Nachricht senden Benutzer-Profile anzeigen
 
stevorino
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 95
Anmeldedatum: 06.12.11
Wohnort: ---
Version: R2007b
     Beitrag Verfasst am: 23.05.2012, 18:20     Titel:
  Antworten mit Zitat      
kann mir da keiner helfen??

kann es sein das etwas mit dem code nicht stimmt.

es werden keine werte rausgeschrieben?

Oder kann es an der Speicherung liegen? Das Programm ist insgesamt schon sehr viele Variablen gespeichert?

Vielen Dank!
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: 23.05.2012, 19:01     Titel:
  Antworten mit Zitat      
Es muss heißen

for k=1:length(anf)-1
...
Private Nachricht senden Benutzer-Profile anzeigen
 
stevorino
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 95
Anmeldedatum: 06.12.11
Wohnort: ---
Version: R2007b
     Beitrag Verfasst am: 24.05.2012, 08:13     Titel:
  Antworten mit Zitat      
Danke Vito und danke DPD,

jetzt funktioniert es.

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