二维阵列水平平均输出

two dimensional array horizontal average output

本文关键字:水平 输出 阵列 二维      更新时间:2023-09-26

我遇到了一个问题,不知道如何将其放入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)
    }

最终产品类似于

我想在最后做一个表格,并将每个"阵列的平均值

Arr 0  1 2 3 4 5  average:
Arr 1  5 4 3 2 1  average:
Arr 2  3 2 1 4 5  average:

用您想要的语言执行此操作。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);
}

基本上,这是:对于矩阵中的每一行,创建所有元素的总和,然后将总和除以列数,得出该行的平均值。

这将计算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;
}
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;

您可以在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/

这段代码提醒以类似表格的字符串结构的数据。

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);

方法:

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>

使用map和reduce。

var matrix = [[1, 2, 3, 4, 5],[5, 4, 3, 2, 1],[3, 2, 1, 4, 5]]
var result = matrix.map(row=>row.reduce((a,b) => a+b)/row.length);
console.log(result.join(', '));