我遇到了问题而且我不知道如何把它放在for循环中。 我需要下一个矩阵的水平平均值:
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
我想在最后制作一张表并将每个&#34;数组放在平均值
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 :(得分:1)
以您想要的语言执行此操作。 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);
}
基本上,这是:对于矩阵中的每一行,创建所有元素的总和,然后将总和除以列数以找到行的平均值。
答案 1 :(得分:1)
这将计算并将您的值放在一个新的矩阵中,并在最后一列中显示平均值。
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;
}
答案 2 :(得分:1)
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;
答案 3 :(得分:1)
方法:
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>
答案 4 :(得分:1)
这段代码警告以类似表格的字符串结构化的数据。
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);
答案 5 :(得分:1)
您可以在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;
请查看以下链接以供参考:
答案 6 :(得分:0)