Найдите среднее значение двух строк матрицы 42 на 4.

Я хочу найти среднее значение 1-й и 22-й строк, 2-й и 23-й строк и т. д. матрицы 42 на 4. Первый и 22-й ряды:

0 0 -30 -2.49000000000000

0 0 -30 -2.38000000000000

Как я могу найти среднее значение каждого столбца в этих двух строках?


person Anand    schedule 20.09.2012    source источник


Ответы (2)


Если вам нужно среднее значение каждого столбца двух строк, вы можете использовать что-то вроде

mean(t([1,22],:)); 

это приведет к

0 0 -30.0000 -2.4350

person Daniel    schedule 20.09.2012
comment
Как я могу написать цикл for для вычисления среднего значения 1-й и 2-й строк, 3-й и 4-й строк. - person Anand; 25.09.2012
comment
для i = 1:2: длина (массив) означает (массив ([i + 1],:)); конец - person Daniel; 29.09.2012

MATLAB имеет специальный синтаксис для индексации матриц, и вы можете узнать об этом, набрав

   help :

Теперь предположим, что ваша матрица

   M = randn(42,4);  %generating a random matrix with 42 rows and 4 columns

Затем вы можете вычислить среднее значение желаемых строк, используя простое сложение и среднее значение:

   rowmeans =  ( M(1:21,:) + M(22:end,:) ) / 2;

который создаст матрицу, содержащую 21 строку и 4 столбца, где каждая строка является желаемым средним значением.

В более общем случае для усреднения верхней и нижней половины матрицы с четным числом строк:

   rowmeans =  ( M(1:end/2,:) + M(end/2+1:end,:) ) / 2;

Вы также можете узнать о ключевом слове end в MATLAB:

   help end
person cjh    schedule 20.09.2012
comment
Большое спасибо. Это очень помогло - person Anand; 24.09.2012