Ich habe eine sehr große Matrix (216 Zeilen, 31286 Spalten) mit Doppelwerten. Aus datenbedingten Gründen möchte ich alle 9 Zeilen mitteln, um eine neue Zeile zu erzeugen. Die neue Matrix wird also 216/9=24 Zeilen haben.
Ich bin ein Matlab-Anfänger und frage mich, ob diese Lösung, die ich mir ausgedacht habe, verbessert werden kann. Grundsätzlich wird jede Gruppe in einer Schleife durchlaufen, die Zeilen summiert und dann die neue Zeile durch 9 geteilt. Hier ist eine vereinfachte Version dessen, was ich geschrieben habe:
matrix_avg = []
for group = 1:216/9
new_row = zeros(1, 31286);
idx_low = (group - 1) * 9 + 1;
idx_high = idx_low + 9 - 1;
% Add the 9 rows to new_row
for j = idx_low:idx_high
new_row = new_row + M(j,:);
end
% Compute the mean
new_row = new_row ./ 9
matrix_avg = [matrix_avg; new_row];
end