2013-11-20 137 views
2

我困住了一个问题,我不知道如何把它放在for循环中。 我需要在下一个矩阵的hotizontal平均:二维数组水平平均输出

1 2 3 4 5 

5 4 3 2 1 

3 2 1 4 5 

我走到这一步:

var dArray = [[1, 2, 3, 4, 5], [5, 4, 3, 2, 1], [3, 2, 1, 4, 5]]; 

    for (x=0; x<dArray.length; x++) 
    { 
     //this loop needs to go trough each horizontal matrix and put 
     //the average in a variable so i can print it later 
     //average .... team[0][x] something? 
     //document.write(average) 
    } 

最终产品是什么like this

我想打一个表末并把平均每个“阵列

Arr 0 1 2 3 4 5 average: 

Arr 1 5 4 3 2 1 average: 

Arr 2 3 2 1 4 5 average: 

回答

0

这样做在l你想要的语言。 Java或Javascript。选一个。

for (int i = 0; i < rows; ++i) 
{ 
    double sum = 0; 
    for (int j = 0; j < columns; ++j) 
    { 
     sum = sum + matrix[i][j]; 
    } 
    double avg = sum/columns; 
    print(avg); 
} 

基本上,这是:在矩阵的每一行,创建的所有元素的总和,然后由列数除以总和找到行的平均值。

0

这将计算并将ur值与最后一列中的平均值放在一个新矩阵中。

double[][] Table = new double[dArray.length][dArray[0].length+1]; 
double sum, avg; 
for(int i = 0; i<dArray.length; i++) 
{ 
    sum = 0; 
    for(int j = 0; j<dArray[0].length; j++) 
    { 
     Table[i][j]=dArray[i][j]; 
     sum += dArray[i][j]; 
    } 
    avg = sum/dArray[0].length; 
    Table[i][dArray[0].length] = avg; 
} 
0
var res = []; 
for(i = 0;i<dArray.length;i++){ 

var tot=0; 
for(j=0;i<dArray[i].length;j++){ 

tot +=dArray[i][j]; 

} 
res.push(tot/dArray[i].length); 
} 
return res; 
0

方法:

var dArray = [[1, 2, 3, 4, 5],[5, 4, 3, 2, 1],[3, 2, 1, 4, 5]]; 
alert(dArray.map(function (a) { 
    return (a.reduce(function (x, y) {return (x + y);})/a.length); 
})); 

实现:

<div id="matrix"></div> 
<script> 
    var dArray = [[1, 2, 3, 4, 5],[5, 4, 3, 2, 1],[3, 2, 1, 4, 5]]; 
    var buffer=''; 
    dArray.map(function (a) { 
     buffer+= a.toString()+","+ (a.reduce(function (x, y) {return (x + y);})/a.length)+"<br/>"; 
    }); 
    document.addEventListener('DOMContentLoaded',function(){ 
     document.getElementById('matrix').innerHTML=buffer; 
    },false); 
</script> 
0

这段代码警报表中的状串构成的数据。

var dArray = [[1, 2, 3, 4, 5], [5, 4, 3, 2, 1], [3, 2, 1, 4, 5]]; 

var str = ''; 
dArray.forEach(function(arr, index){ 
    var average = arr.reduce(function(sum, item){ return sum + item; })/arr.length; 
    str += '\n Array ' + index + ': ' + arr.join(' ') + ' average: ' + average; 
}); 
alert(str); 
0

你可以在JavaScript像如下:

有一个div

<div id="matrix_output"> </div> 

,并添加javascript代码:

var dArray = [[1, 2, 3, 4, 5], [5, 4, 3, 2, 1], [3, 2, 1, 4, 5]]; 
var texts=''; 
    for (i=0; i<dArray.length; i++) 
    { 
     sum=0;   
     for(j=0;j<dArray[i].length;j++){ 
      sum=sum+dArray[i][j]; 
      texts=texts + dArray[i][j] + " \t"; 
     } 
     avg=sum/dArray[i].length; 
     texts= texts + avg + " <br/>" ; 
     dArray[i][dArray[i].length]=avg; 

    } 
document.getElementById("matrix_output").innerHTML=texts; 

检查下面的链接以供参考:

http://jsfiddle.net/xGZPL/