Mittelwert für gleiche 2. Spalte
svn88
Forum-Anfänger
Beiträge: 13
Anmeldedatum: 14.07.10
Wohnort: ---
Version: 7.6.0 (R2008a)
Verfasst am : 19.08.2010, 22:58
Titel : Mittelwert für gleiche 2. Spalte
Hallo,
bin neu hier und kenne mich noch nicht so gut mit Matlab aus.
Würde mich sehr freuen wenn mir jemand helfen kann.
Ich habe folgende Matrix:
-69 0
-72 0
-88 0
-70 0
-63 0
-58 10
-56 10
-59 20
-58 20
-59 20
und würde gern jeweils den Mittelwert für die gleichen Werte der 2. Spalte (0, 10, 20 ) bilden.
Hat jemand eine Idee ?
Schonmal vielen vielen Dank im Vorraus.
Vito
Forum-Guru
Beiträge: 315
Anmeldedatum: 02.11.09
Wohnort: Stuttgart
Version: ---
Verfasst am : 19.08.2010, 23:48
Titel :
Hi,
wenn ich dich recht verstanden habe, dann willst du den Mittelwert der zweiten Spalte deines Matrix bilden und das machst du so:
Gruß,
Vito
svn88
Themenstarter
Forum-Anfänger
Beiträge: 13
Anmeldedatum: 14.07.10
Wohnort: ---
Version: 7.6.0 (R2008a)
Verfasst am : 20.08.2010, 00:45
Titel :
Hi,
danke für die Antwort, meinte aber etwas anderes.
Hab mich wohl etwas ungünstig ausgedrückt, sorry.
Ich will den Mittelwert der 1. Spalte für die gleichen Wert der 2. Spalte berechen
also einmal den Mittelwert
-69-72-88-70-63 (2.Spalte = 0)
sowie für
-58-56 (2.Spalte = 10)
und
-59-58-59 (2.Spalte = 20)
Die Tabelle ist auch nur ein kleiner Ausschnitt, von daher wäre eine automatisierte Funktion, die die 2. Spalte auf gleiche Werte prüft und dann den Mittelwert der zugehörigen Daten der 1. Spalte bildet ideal.
Weiß jemand wie das geht ?
Vielen Dank schonmal im Vorraus
Vito
Forum-Guru
Beiträge: 315
Anmeldedatum: 02.11.09
Wohnort: Stuttgart
Version: ---
Verfasst am : 20.08.2010, 07:29
Titel :
Hi,
das geht auch fast so
Gruß,
Vito
Fourier
Forum-Guru
Beiträge: 329
Anmeldedatum: 05.04.10
Wohnort: Karlsruhe
Version: 2009b
Verfasst am : 20.08.2010, 08:34
Titel :
Hallo,
für einen beliebig langen Vektor A kannst du das auch probieren.
die forschleife lässt sich vlt vermeiden, aber manchmal ist sie auch praktisch ;).
Code:
u=unique ( A( :,2 ) ) ;
len=length ( u) ;
% Variante 1 (die würde ich nehmen)
% sieht nicht gut aus, aber schön und sicher
% Ergebnisse stehen als eine Struktur M (M.mittel0, M.mittel10,...)
for i=1 :1 :len
x=find ( A( :,2 ) ==u( i) ) ;
M.( sprintf ( 'mittel%d ',u( i) ) ) =mean ( A( x,1 ) ) ;
end
% Variante 2
% sieht gut aus aber nicht schön und unsicher
% Ergebnisse mittel0, mittel10, mittel20
for i=1 :1 :len
x=find ( A( :,2 ) ==u( i) ) ;
eval ( [ 'mittel ' num2str ( u( i) ) '= ' num2str ( mean ( A( x,1 ) ) ) ] )
end
gruss
_________________ Ein schlechter General ist besser als zwei gute.
Maddy
Ehrenmitglied
Beiträge: 494
Anmeldedatum: 02.10.08
Wohnort: Greifswald
Version: ---
Verfasst am : 20.08.2010, 08:52
Titel :
Ich denke, dem Threadersteller reicht auch eine Matrix:
Schleifenlos wäre viel schöner, aber dafür ist es jetzt noch zu früh am Morgen.
PS: Die Ordnung der Dinge ist wieder hergestellt, der "Fourier" war wieder "fast"
_________________ >> why
The computer did it.
Zuletzt bearbeitet von Maddy am 20.08.2010, 09:07, insgesamt einmal bearbeitet
Fourier
Forum-Guru
Beiträge: 329
Anmeldedatum: 05.04.10
Wohnort: Karlsruhe
Version: 2009b
Verfasst am : 20.08.2010, 09:04
Titel :
Zitat:
dem Threadersteller reicht auch eine Matrix:
jaa ist eigentlich immer das beste.
ich hab am anfang an einem vektor gedacht, dann dachte ich wieder woher soll er wissen welcher mittelwert zu was gehört. aber auf eine Matrix
bin ich gekommen
Zitat:
Die Ordnung der Dinge ist wieder hergestellt, der "Fourier" war wieder "fast"
es war wohl zuu "fast"
_________________ Ein schlechter General ist besser als zwei gute.
denny
Supporter
Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
Verfasst am : 20.08.2010, 10:09
Titel :
Hallo
hier noch 2 Möglichkeiten, aber für große Datenmengen, ist FOR günstiger
1) Versteckte FOR, braucht mehr Speicher wg Anonymen Funktion
2) BSXFUN ist auch in sich eine Schleife, weil komponentenweise operationen
svn88
Themenstarter
Forum-Anfänger
Beiträge: 13
Anmeldedatum: 14.07.10
Wohnort: ---
Version: 7.6.0 (R2008a)
Verfasst am : 20.08.2010, 15:34
Titel :
Wow,
so schnell so viele Antworten. Vielen Dank.
Hab gerade mal alle Variationen durchprobiert. Für mich ist die 3. Version (Maddy) optimal, mit
wird exakt das angezeigt, was angezeigt werden soll; 1A!
Gibt es hier evtl. noch die Möglichkeit den plot-Befehl so abzuwandeln, dass er nicht die Zeilenanzahl der Matrix (hier 23) enthalten muss, sondern diese automatisch feststellt?
Nochmals vielen Dank im Vorraus.
Maddy
Ehrenmitglied
Beiträge: 494
Anmeldedatum: 02.10.08
Wohnort: Greifswald
Version: ---
Verfasst am : 20.08.2010, 18:08
Titel :
Wenn du den ganzen "Vektor" plotten willst, dann:
_________________ >> why
The computer did it.
svn88
Themenstarter
Forum-Anfänger
Beiträge: 13
Anmeldedatum: 14.07.10
Wohnort: ---
Version: 7.6.0 (R2008a)
Verfasst am : 20.08.2010, 21:19
Titel :
Hi Maddy,
vielen Dank für den Lösungsvorschlag. Leider funktioniert es nicht wenn ich mehrere plots von Vektoren in eine figure machen will, zum Beispiel bei:
Code:
plot ( M1( 1 :16 ,2 ) ,M1( 1 :16 ,1 ) ,'Marker ','diamond ','DisplayName ','1 .Messung ') ; figure ( 1 )
plot ( M2( 1 :24 ,2 ) ,M2( 1 :24 ,1 ) ,'Marker ','x ','DisplayName ','2 .Messung ') ; figure ( 1 )
plot ( M3( 1 :22 ,2 ) ,M2( 1 :22 ,1 ) ,'Marker ','* ','DisplayName ','3 .Messung ') ; figure ( 1 )
plot ( M4( 1 :15 ,2 ) ,M2( 1 :15 ,1 ) ,'Marker ','o ','DisplayName ','4 .Messung ') ; figure ( 1 )
plot ( M5( 1 :24 ,2 ) ,M5( 1 :24 ,1 ) ,'Marker ','+ ','DisplayName ','5 .Messung ') ; figure ( 1 )
erscheint bei der Version mit dem ganzen Vektor die Fehlermeldung:
Evtl. 'ne Idee woran's hängen könnte?
Vielen Dank
Jan S
Moderator
Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
Verfasst am : 20.08.2010, 22:15
Titel : Re: Mittelwert für gleiche 2. Spalte
Hallo SVN88,
svn88 hat Folgendes geschrieben:
-69 0
-72 0
-88 0
-70 0
-63 0
-58 10
-56 10
-59 20
-58 20
-59 20
und würde gern jeweils den Mittelwert für die gleichen Werte der 2. Spalte (0, 10, 20 ) bilden.
Hast Du es mal mit ACCUMARRAY versucht?
HISTC zählt dazu noch die Anzahl der Bins.
Gruß, Jan
svn88
Themenstarter
Forum-Anfänger
Beiträge: 13
Anmeldedatum: 14.07.10
Wohnort: ---
Version: 7.6.0 (R2008a)
Verfasst am : 21.08.2010, 01:01
Titel :
Hi Jan,
Zitat:
Hast Du es mal mit ACCUMARRAY versucht?
HISTC zählt dazu noch die Anzahl der Bins.
nein bisher noch. Die Version von Maddy hat mich soweit überzeugt. Aber danke für den Hinweis, werde ich mir bei Gelegenheit auch mal anschauen.
Gruß
svn88
Themenstarter
Forum-Anfänger
Beiträge: 13
Anmeldedatum: 14.07.10
Wohnort: ---
Version: 7.6.0 (R2008a)
Verfasst am : 21.08.2010, 01:05
Titel :
svn88 hat Folgendes geschrieben:
Hi Maddy,
vielen Dank für den Lösungsvorschlag. Leider funktioniert es nicht wenn ich mehrere plots von Vektoren in eine figure machen will, zum Beispiel bei:
Code:
plot ( M1( 1 :16 ,2 ) ,M1( 1 :16 ,1 ) ,'Marker ','diamond ','DisplayName ','1 .Messung ') ; figure ( 1 )
plot ( M2( 1 :24 ,2 ) ,M2( 1 :24 ,1 ) ,'Marker ','x ','DisplayName ','2 .Messung ') ; figure ( 1 )
plot ( M3( 1 :22 ,2 ) ,M2( 1 :22 ,1 ) ,'Marker ','* ','DisplayName ','3 .Messung ') ; figure ( 1 )
plot ( M4( 1 :15 ,2 ) ,M2( 1 :15 ,1 ) ,'Marker ','o ','DisplayName ','4 .Messung ') ; figure ( 1 )
plot ( M5( 1 :24 ,2 ) ,M5( 1 :24 ,1 ) ,'Marker ','+ ','DisplayName ','5 .Messung ') ; figure ( 1 )
....
ups, Fehler in der Matrix, wenn man den Code richtig schreibt, funktioniert es auch
Code:
plot ( M3( 1 :22 ,2 ) ,M3( 1 :22 ,1 ) ,'Marker ','* ','DisplayName ','3 .Messung ') ; figure ( 1 )
plot ( M4( 1 :15 ,2 ) ,M4( 1 :15 ,1 ) ,'Marker ','o ','DisplayName ','4 .Messung ') ; figure ( 1 )
plot ( M5( 1 :24 ,2 ) ,M5( 1 :24 ,1 ) ,'Marker ','+ ','DisplayName ','5 .Messung ') ; figure ( 1 )
und dann dementsprechend für alle Vektoren:
usw.
nochmals Danke
Maddy
Ehrenmitglied
Beiträge: 494
Anmeldedatum: 02.10.08
Wohnort: Greifswald
Version: ---
Verfasst am : 23.08.2010, 08:39
Titel :
Zusatzanmerkung:
DU hast da sehr merkwürdigen Plot-Code.
Wieso schreibst du hinter jede Zeile figure(1)?
Ein einfaches
sollte ausreichen.
_________________ >> why
The computer did it.
Gehe zu Seite 1 , 2 Weiter
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
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| 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.