Verfasst am: 23.06.2010, 17:50
Titel: Aus bestimmten Zeilen einer Matrix Mittelwert bilden
Hallo,
mein Problem ist, dass ich eine Matrix der Form (x,4) habe, wobei x eine unregelmäßige Verteilung von reellen Zahlen zwischen 0<x<40 ist.
Ich möchte dennoch in bestimmten Bereichen, so alle 0,05x einen Mittelwert aller darin enthaltenen Elemente, für alle vier Spalten der Matrix, berechnen.
War vielleicht wirklich etwas schlecht ausgedrückt von mir. Also, ich habe eine Matrix A mit der Dimension (40000,4). Das sind also 3x40000 Wertepaare. Diese Anzahl möchte ich reduzieren, indem ich in bestimmte Intervallen den Mittelwert bilde. Die Sache ist jedoch die, dass die Werte nicht gleichmäßig verteilt sind und ich daher nicht einfach sagen kann, bilde mir z.B. alle 5 Zeilen einen Mittelwert. Der Sachverhalt stellt sich eher so dar: in der ersten Spalte habe ich die x-Werte zu stehen, die sich zwischen 0<x<40 bewegen und in den anderen 3 Spalten die dazugehörigen y-Werte von 3 Funktionen. Ich möchte gerne, dass jeweils in einem bestimmten Intervall von x der Mittelwert gebildet wird (sowohl von x, als auch den dazugehörigen 3 Funktionswerten).
ich hoffe ich hab dich richtig verstanden, hier ein kleines beispiel, ersetze dein phi mit 0.05 oder jenachdem...
Code:
M =[6385 2534 2788 5936 9995 4549 6223 3237 7367];
phi=3;
laufvar=size(M,1)/phi;
for k=1:laufvar
if(k~=laufvar)
M_neu(k,:)=mean(M(M(:,1)>=(k-1)*phi & M(:,1)<k*phi,:));
else
M_neu(k,:)=mean(M(M(:,1)>=(k-1)*phi & M(:,1)<=k*phi,:));
end end
danke für deine Antwort. Prinzipiell scheint dein Code das zu machen, was ich benötige. Aber ich glaube bei dem Intervall phi habe ich mich falsch ausgedrückt.
Wenn phi z.B. jetzt 0.5 ist, dann soll der Mittelwert jeder Spalte gebildet werden für
0.0<x<0.5 [(0+0.01+0.012+0.3+0.321+0.456+0.478)/7 Bsp. für Spalte 1], dann aller Elemente bis
0.5<x<1.0 [(0.501+0.756+0.781+0.921+0.978)/5] und dann aller Elemente bis
1.0<x<1.5 [1.467/1].
Dies soll so geschehen, dass ich zu jedem gemittelten x auch die entsprechend gemittelten y1, y2 und y3 Funktionswerte habe.
Danke für deine Mühe Fourier, aber leider funktioniert das Letze Script gar nicht bei mir. Bekomme da nur eine Nullmatrix ausgegeben, die nur in der letzten Zeile vier Einträge hat :-(
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
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.