average sections of matrix
Ältere Kommentare anzeigen
Hi there, I am trying to average sections of a matrix at a time. The matrix is 31x109. Initially I am trying to build another matrix from the average of the first 25 elements increments in the first row, then the second 25(beginning from the the last element in the previous average); this will later be applied to all rows. My current attempt is
for f = 1:[1:25:108]; Ave_PpIX(f,:) = PpIX_Dose_Matrix(1,1:f); end
ave_PpIX = mean(Ave_PpIX);
Am idea of the matrix is: [ave(1-25) ave(13-38) ave(25-50)...]
If anyone has had any previous experience doing this I would really appreciate any help.
Thnaks Luke
1 Kommentar
Jan
am 12 Jul. 2018
Why 108 in the loop, not 109? What should happen with the last chunk, which has less then 25 elements?
1:[a:b:c] is the same as 1:a.
Akzeptierte Antwort
Weitere Antworten (1)
PpIX_Dose_Matrix = rand(31, 109);
n = size(PpIX_Dose_Matrix, 2);
k = 0;
for f = 1:24:n
k = k + 1;
Ave_PpIX(k) = mean(PpIX_Dose_Matrix(1, f:f+24));
end
This can fail, when f+25 is outside the existing range. A test with if can catch this:
if f+25 <= n
...
3 Kommentare
Luke McLellan
am 13 Jul. 2018
Bearbeitet: Luke McLellan
am 13 Jul. 2018
Jan
am 13 Jul. 2018
for f = 1:12:n
k = k + 1;
Ave_PpIX(k) = mean(PpIX_Dose_Matrix(1, f:f+24));
end
Luke McLellan
am 16 Jul. 2018
Kategorien
Mehr zu Creating and Concatenating Matrices finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!