www.vorhilfe.de
- Förderverein -
Der Förderverein.

Gemeinnütziger Verein zur Finanzierung des Projekts Vorhilfe.de.
Hallo Gast!einloggen | registrieren ]
Startseite · Mitglieder · Impressum
Forenbaum
^ Forenbaum
Status VH e.V.
  Status Vereinsforum

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Suchen
 Impressum
Das Projekt
Server und Internetanbindung werden durch Spenden finanziert.
Organisiert wird das Projekt von unserem Koordinatorenteam.
Hunderte Mitglieder helfen ehrenamtlich in unseren moderierten Foren.
Anbieter der Seite ist der gemeinnützige Verein "Vorhilfe.de e.V.".
Partnerseiten
Weitere Fächer:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
Forum "Matlab" - Mittelwert mit Abhängigkeiten
Mittelwert mit Abhängigkeiten < Matlab < Mathe-Software < Mathe < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Matlab"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

Mittelwert mit Abhängigkeiten: Mittelwert
Status: (Frage) beantwortet Status 
Datum: 13:39 Di 13.11.2012
Autor: matlabi

Hallo zusammen

Ich habe diese Frage auch in folgenden Foren auf anderen Internetseiten gestellt: http://matheplanet.com (Leider bislang ohne Erfolg)

ich habe folgendes Problem und keine Ahnung wie es zu lösen ist. Daher bin ich froh um jeden Lösungsansatz.

Beispielmatrix A =

1   3
1   4
1   5
4   2
5   3

Ziel: nun soll in der zweiten Spalte der Mittelwert errechnet werden und zwar von denjenigen Zahlen, welche in den Zeilen sind, welche dieselben Werte in der ersten Spalte haben. (In diesen beispiel wäre dies der Mittelwert von 3, 4 und 5 (also 4), weil in der ersten Spalte die ersten drei Werte 1 sind.)

Ich hoffe ich habe mich klar ausgedrückt, ansonsten bitte melden!
Vielen Dank für jeden Beitrag!

        
Bezug
Mittelwert mit Abhängigkeiten: Antwort
Status: (Antwort) fertig Status 
Datum: 14:04 Di 13.11.2012
Autor: reverend

Hallo matlabi, [willkommenmr]

Vorab: ich habe keinerlei Ahnung von Matlab, aber vielleicht kann ich Dir trotzdem weiterhelfen.

> ich habe folgendes Problem und keine Ahnung wie es zu
> lösen ist. Daher bin ich froh um jeden Lösungsansatz.
>  
> Beispielmatrix A =
>  
> 1   3
>  1   4
>  1   5
>  4   2
>  5   3
>  
> Ziel: nun soll in der zweiten Spalte der Mittelwert
> errechnet werden und zwar von denjenigen Zahlen, welche in
> den Zeilen sind, welche dieselben Werte in der ersten
> Spalte haben. (In diesen beispiel wäre dies der Mittelwert
> von 3, 4 und 5 (also 4), weil in der ersten Spalte die
> ersten drei Werte 1 sind.)

Also: Du hast eine [mm] $m\times [/mm] 2$-Matrix vorliegen.
Ist die erste Spalte immer geordnet, so wie hier?
Ist die höchste Zahl maximal m=Zeilenzahl?
Sind die Einträge beider Spalten ganzzahlig und womöglich gar positiv?
In welchem Format soll der Mittelwert ermittelt werden? Gerundet ganzzahlig oder "rational" (Gleitkommaformat)?

Diese Fragen sind erst noch zu klären.

Ansonsten legst Du eine zweite [mm] $m\times [/mm] 2$-Matrix an, in deren erster Spalte jeder vorkommende Wert genau einmal steht, und in der zweiten Spalte die Zahl des Vorkommens. Außerdem brauchst Du noch ein eindimensionales Array (am besten getrennt von der zweiten Matrix, da u.U. anderer Datentyp) mit m Plätzen (das ist das Maximum, das Du brauchst).

Danach gehst Du Deine ursprüngliche Matrix durch und kannst die Mittelwerte schrittweise berechnen.
Sei z.B. die Zahl in der ersten Spalte eine 2.
Beim ersten Auftreten weist Du dem entsprechenden Platz im Array (Indizierung über erste Spalte der zweiten Matrix) den Wert zu, der sich aus Division des Werts in der zweiten Spalte der ersten Matrix (also Datenvorgabe) durch die Häufigkeit (zweite Spalte zweite Matrix) ergibt. Die Zuweisung geschieht am besten einfach durch Addition des bestehenden Werts mit dem neu errechneten. Dazu muss das Array zu Beginn komplett auf Null stehen - und genau das tut es ja in allen mir bekannten Sprachen...

In Deinem obigen Beispiel hättest Du also in der zweiten Matrix in der ersten Spalte obenan die 1 stehen, in der zweiten Spalte die 3 (weil in der Datenvorlage = erste Matrix die 1 dreimal in der ersten Spalte vorkommt).
Der ersten Variablen im Array weist Du dann nacheinander erst 0+3/3 (3 aus 1.Matrix, 2.Spalte, durch 3 aus 2. Matrix, 2. Spalte), dann 3/3+4/3=7/3, dann 7/3+5/3=12/3=4 zu.

Got me?

Grüße
reverend


Bezug
        
Bezug
Mittelwert mit Abhängigkeiten: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 15:18 Di 13.11.2012
Autor: matlabi

Vielen Dank für den bisherigen Beitrag von reverend. Die aufgabenstellung könnte man übrigens auch wie folgt Stellen:

Zwei Vektoren derselben Länge sind vorhanden. Z.B.:
a=[8 3 4 5 5 5] und b=[7 4 5 6 4 2]

nun soll an der stelle bei der beim vektor a derselbe Eintrag vorhanden ist, beim vektor b der mittelwert genommen werden, sodass folgender vektor b bei obigem Beispiel entsteht:
b=[7 4 5 4]

Es handelt sich um ganze, positive Zahlen, welche nicht geordnet sind. Das Format des Mittelwerts kann Ganzzahlig sein.

Vielen dank für eure Hilfe mit der Realisation in Matlab

Bezug
                
Bezug
Mittelwert mit Abhängigkeiten: Antwort
Status: (Antwort) fertig Status 
Datum: 16:41 Di 13.11.2012
Autor: leduart

Hallo
in matlab gibt es direkt sort Befehle, die die 2 Vektoren ordnet, so dass du dann 3 4 5 5 5 8 beim ersten stehen hast der zweite entsprechend geordnt.
2. es gibt einen logischen befehl alle Teile der matrix mit 1. eintrag a in eine neue matrix zu schreiben, du hättest dann 4 neue Matrizen, und musst nur die 2.te zeile in allen aufsommieren und durch die lange teilen.
den befehl musst du om handbuch suchen, das dauert mir zu lange, du musst ja eh den Umgang mit dem manueal lernen
Gruss leduart

Bezug
                        
Bezug
Mittelwert mit Abhängigkeiten: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 21:00 Di 13.11.2012
Autor: matlabi

Vieleicht muss ich die Frage umformulieren:

Vektor a und b sind Messwerte, wobei der Vektor a Zeitwerte enthält und der Vektor b die Messresultate. Da Mehrere Messinstrumente verwendet wurden, gibt es verschiedenen Messungen zur gleichen Zeit. Diese sollen nun gemittelt werden.
Die Anzahl der Messinstrumente variert jedoch über die Dauer der Messung!

Beispiel:
Vektor a mit Zeitwerten: a=[1;1;1;1;1;1;1;1;1;1;2;3;6]
Vektor b mit Messwerten: b= [1;2;3;4;5;6;7;8;9;1;2;3;4]

Ziel: Vektor mit gemittelten Messwerten: c=[4.6;2;3;4]


Bezug
                                
Bezug
Mittelwert mit Abhängigkeiten: Antwort
Status: (Antwort) fertig Status 
Datum: 21:13 Di 13.11.2012
Autor: luis52

Moin,

wenn du nicht mit MATLAB "verheiratet" bis so haette ich eine Loesung in R. Vielleicht kannst du so etwas auch in MATLAB umsetzen.

1: R> a <- c(1,1,1,1,1,1,1,1,1,1,2,3,6)
2: R> b <- c(1,2,3,4,5,6,7,8,9,1,2,3,4)
3: R> u <- unique(a)
4: R> u
5: [1] 1 2 3 6
6: R> m <- NULL
7: R> for(i in u)m <- c(m,mean(b[i==a]))
8: R> m
9: [1] 4.6 2.0 3.0 4.0


vg Luis

P.S Das geht noch schneller:

1: R> sapply(split(b,a),mean)
2:   1   2   3   6 
3: 4.6 2.0 3.0 4.0 

Bezug
Ansicht: [ geschachtelt ] | ^ Forum "Matlab"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
ev.vorhilfe.de
[ Startseite | Mitglieder | Impressum ]