2014-11-19 2 views
0

Im я writitng на Javascript и нужна помощь ....Как найти среднее значение матрицы 2?

var h, A, B, C, D, Answer; 
 
h = [[0.1, 0.2, 0.3, 0.4], [0.4, 0.3, 0.2, 0.1]] 
 

 
A = h[0][0]*h[1][0] 
 
B = h[0][1]*h[1][1] 
 
C = h[0][2]*h[1][2] 
 
D = h[0][3]*h[1][3] 
 
Answer = (A+B+C+D)/4 
 
document.write (Answer);

Я хотел бы найти среднее значение матрицы, как показано ниже? Я хотел бы, чтобы моя программа находила среднее значение из образца 1 и образца 2. Пример: образец 1 имеет следующую матрицу: [0,1, 0,2, 0,3, 0,4], а образец 2 имеет следующие значения [0,4, 0,3, 0,2, 0,1] , Моим решением будет: {0,1 * 0,4 + 0,2 * 0,3 + 0,3 * 0,2 + 0,4 * 0,1}/4 = 0,05

Как я могу построить свой код, используя для циклов? Thanks

ответ

1

Вы можете использовать функцию Array.reduce().

var h, Answer; 
 
h = [[0.1, 0.2, 0.3, 0.4], [0.4, 0.3, 0.2, 0.1]]; 
 
Answer = h[0].reduce(function(previousValue, currentValue, index, array) { 
 
    return previousValue + currentValue*h[1][index]/array.length; 
 
},0); 
 
alert(Answer);

Подробнее: documentation

С петлями

var h, Answer; 
 
h = [[0.1, 0.2, 0.3, 0.4], [0.4, 0.3, 0.2, 0.1]]; 
 
var length = h[0].length; 
 
Answer=0; 
 
for (var i=0; i<length; i++){ 
 
    Answer += (h[0][i]*h[1][i])/length; 
 
} 
 
alert(Answer);

+0

хммм, какова 0 в конце делать? Можете ли вы посоветовать мне сделать это с помощью петель? –

+0

Второй пример включает цикл ... Первый пример - это еще один способ сделать это. 0 в первом примере является начальным значением предыдущего аргумента Value. Вы должны пройти документацию, чтобы понять ее. –

+0

Решение 1 более элегантно. @ Алжирони, если вы хотите сделать JavaScript или функциональный путь, тогда это будет путь. – shriek

Смежные вопросы