Ich möchte gerne aus der 2ten Spalte die z.B. ersten 3 Werte rausnehmen und den Mittelwert bilden. Dann die nächsten 3 Werte usw.
Aus der ersten Spalte soll jeweils nur der erste und der letzte Wert der drei Werte angezeigt werden.
Das Ergebnis sollte dann wie folgt aussehen:
(hier werden nur der erste und letzte Wert der jeweiligen drei Werte der ersten Spalte angezeigt und die jeweiligen Mittelwerte einfach an die jeweiligen Stellen in die 2te Spalte eingefügt und angezeigt)
1-99 erfüllt nicht den von dir gewünschten Zweck, sondern wird als 1 minus 99 interpretiert, d.h. dein Code würde einen Vektor von 1 bis size(x,1) mit Schrittweite -98 erzeugen. Schau dir am besten die Effekte der unten angeführten Befehle im einzelnen an, damit du es besser nachvollziehen kannst:
Code:
step = 100; % Anzahl der Elemente pro Mittelwert
elem = length(x); % Anzahl der Elemente in einer Spalte von x
result = [x(reshape([1:step:elem; step:step:elem], [], 1))reshape(repmat(mean(reshape(x(:,2), step, [])), [21]), [], 1)];
Gibt es eine Möglichkeit die Mittelwerte von den Werten 1-100 und dann von 100-200 und dann von 200-300 usw. zu ermitteln?
Sicher, du musst jedoch nun die 1.Spalte gesondert betrachten, da du hier den Mittelwert über 100 Elemente berechnest und bei den restlichen Spalten über 101, d.h die Varianten mit RESHAPE wäre erst ab der 2.Spalte möglich, wobei du noch jeden 100sten Wert verdoppel müsstest.
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.