2011-11-03 123 views
1

我在介绍性的JavaScript课程,最近开始学习矩阵。我被分配了一个问题来解决,但我仍然很难继续。从矩阵中,我需要创建一个Z形式,然后使用Z数据完成任务。是用于分配的基本参数如下:Javascript矩阵混淆

声明一个8×8矩阵和长度22的阵列(声明您在算法使用任何其他变量)

  1. 填充矩阵。
  2. 复制矩阵,反对角线,和所述矩阵的最后一行到所述阵列的所述第一行的元素。 (我们称之为类在基质中的Z)
  3. 排序阵列。
  4. 假设数组中的数据是等级,计算存储在数组偶数位置的等级的平均值。
  5. 复制阵列回矩阵。(回Z)
  6. 打印出来的矩阵值。

根据我的讲义,我能够放在一起这样的代码:

Var k=0; 
Var j=0; 
Var i=0; 
Var x=0; 

for (k=0;k<8;k++){ 
    x[j]=mat[i][k] 
    j=j+1 
} 

var x = new array (22); 
j=8; 
k=j; 
for(i=1;i<7;i++){ 
    k[j]mat[i][k]; 
    j=j+1; 
} 

var mat=new array (8); 
i=7 
for(i=0;1<21;i=i+1){ 
    for(k=i+1;k<22;k=k+1){ 
    if(x[i]>x[k]){ 
     temp=x[i]; 
     x[i]=x 
     x[k]=temp 
    } 
    } 
} 
x[i]=mat[i][k]; 
mat[i][k]=x[j] 

我不确定如何排序或阵列复制回成矩阵。

+0

JavaScript区分大小写。使用'new Array'而不是'new array'。 –

+0

另外,在JavaScript中将数组初始化为特定大小是毫无意义的。 – Pointy

+0

除了计算它的平均值之外,你还想做什么?而“复制回Z”是什么意思? Z值应该排序吗? – pimvdb

回答

1

尝试重写代码,是这样的:

var k=0; 
var j=0; 
var i=0; 
var x=0; 

for (k=0;k<8;k++){ 
    x[j] = mat[i][k] 
    j=j+1 
} 

var x = new Array(); 
j=8; 
k=j; 
for(i=1;i<7;i++){ 
    k[j]mat[i][k]; 
    j=j+1; 
} 

var mat= new Array(); 
i=7 
for(i=0;1<21;i=i+1){ 
    for(k=i+1;k<22;k=k+1){ 
    if(x[i]>x[k]){ 
     temp = x[i]; 
     x[i] = x 
     x[k] = temp 
    } 
    } 
} 
x[i] = mat[i][k]; 
mat[i][k] = x[j]; 

测试此代码了。它应该完美地工作。