Verfasst am: 05.03.2015, 18:58
Titel: Mittelwertbildung für bestimmte Spaltenwerte in Matrix
Hallo,
ich habe eine Matrix die zum Beispiel so aussieht:
0 0.45
0 0.367
0 1.2003
1 2222.3
1 334.09
1 22453
Ich will aus den Werten für Spalte 2 für die gilt Wert Spalte 1 =0 den Mittelwert der Werte aus Spalte 2 bilden.
Und für Werte der Spalte 2 für die gilt Wert Spalte 1 = 1 den Mittelwert der Spalte 2.
Ich bekomme es einfach nicht hin und finde leider auch kein passendes Beispiel hier im Forum. Es wäre super wenn mir jemand helfen könnte ....
Danke
Leidert liefert mir das nicht das was ich möchte, sondern nur irgendwelche Mittelwerte. Ich möchte aber wie oben beschrieben immer nur die Mittelwerte aus den zur Spalte 1 zugehörigen Werten in Spalte 2 bilden.
das ist auch kein logisches indizieren. wie man logisch indiziert findet sich in den matlab fundamentals in der documentation.
die documentation von matlab ist sehr gut und ich kann nur empfehlen sie zu lesen.
http://de.mathworks.com/help/matlab.....hlight=logical%20indexing _________________
Dabei ist M die Matrix für die entsprechend der Werte in Spalte 1 die Summe der korrespondierenden Werte von Spalte 2 gebildet wird.
Bei meiner eigentlichen Matrix handelt es sich aber um floating-point values und nicht um integers. Wenn ich darauf diesen Code anwende klappt es nicht. Das Programm läuft durch spuckt aber Mist aus. Jetzt habe ich auf den Seiten von Mathworks gefunden das man mit Toleranzen arbeiten muss damit nicht aufgrund von Rundungsfehlern, Matlab Werte falsch benutzt.
Hier der Code dazu :
Code:
deltaZ=[0,0.01,0.02,0.03,0.04,0.05,0.06,0.07,0.08,0.09,0.1]';
ZZ = zeros(length(HTC),1);
Sum = zeros(length(deltaZ),1);
for kk = 1:length(deltaZ)
Z = deltaZ(kk);
for i = 1:length(HTC) if HTC(i,1)== (Z < 0.0001)
ZZ(i)= HTC(i,2);
elseif HTC(i,1) ~= (Z < 0.0001)
ZZ(i)= 0.0;
end
ZZZ = mean(ZZ,1,'double');
end Mean(kk) = ZZZ;
end Mean = [ deltaZ , Mean];
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.