Есть ли какая-нибудь команда, чтобы найти среднее из первых 5 значений, а затем следующих 5 значений для 1000 значений в векторе в MATLAB? - PullRequest
0 голосов
/ 04 апреля 2019

Есть ли какая-либо команда, чтобы найти среднее из первых 5 значений, а затем следующих 5 значений из 25 значений, присутствующих в векторе в MATLAB. Если набор данных X. Если кто-нибудь может помочь мне предоставить код, где я могу получить среднее значение для каждого 5-го значения.

X=[4 5 6 7 2 5 7 4 2 6 7 3 2 1 5 7 8 3 4 6 8 4 2 6 8];

Ответы [ 2 ]

1 голос
/ 04 апреля 2019

Например, вы можете изменить вектор в массиве с помощью reshape, а затем применить функцию mean:

M = mean(reshape(X, [5, numel(X)/5]),1);

или просто

M = mean(reshape(X, 5, []),1);

Но там, как указанов комментариях есть много других способов.

0 голосов
/ 04 апреля 2019

Вот один простой способ сделать это.Переставьте вектор в матричный цикл по столбцам и возьмите среднее значение всех значений в каждом столбце.Сохраните результаты в новом векторе.

X=[4 5 6 7 2 5 7 4 2 6 7 3 2 1 5 7 8 3 4 6 8 4 2 6 8];
Xr = reshape(X,5,5)
cols = size(Xr)(2)
avgs=zeros(1,cols)

for i= 1:cols
    avgs(i) = mean(Xr(:,i))
end
...