2016-03-05 140 views
-3
package p1; 
public class Matrix{ 


    public Matrix(int b,Vector...vectors) { 

    double myArray[][] = new double[vectors.length][]; 
    int row = vectors.length; 

    int column = vectors.length; 
    for (int i = 0; i < row; i++) { 
     myArray[i] = new double[column]; 
    } 


    for (int i = 0; i < row; i++) { 
     for (int j = 0; j < column; j++) { 

      if(b==0) 
      { 

       myArray[i][j] = vectors[i][j]; // ERROR HERE 
      } 
      else 
      { 
       myArray[j][i] = vectors[i][j]; // ERROR HERE 
     } 
    } 
} 
} 

} 

错误:类型的表达式必须是阵列类型的错误,但它解析成矢量类型表达式必须是阵列类型的错误JAVA

我不能两种载体整合到一个2D阵列

的在Vector类的定义如下:

public class Vector { 

    public double[] getYourArray() { 
     return yourArray; 
    } 

    public void setYourArray(double[] yourArray) { 
     this.yourArray = yourArray; 
    } 

    public double yourArray[]; 

    public Vector(double...yourArray) { 
     this.yourArray = yourArray;                                                     
    } 
} 
+0

这是什么'Vector'? – 2016-03-05 16:24:32

+0

矢量类:将实数的vetor保存为一维数组。 构造函数: (1)\t需要一个双精度数组并将其转换为aVector (2)\t将逗号分隔为列表并将它们转换为Vector。 –

+0

公共类矢量{ \t \t 公共\t双[] getYourArray(){ \t \t返回yourArray; \t} \t公共无效setYourArray(双[] yourArray){ \t \t this.yourArray = yourArray; \t} \t \t公共双yourArray []; \t \t \t \t公共向量(双... yourArray){ \t \t this.yourArray = yourArray; \t \t \t \t \t } \t } –

回答

0

根据您所提供的的Vector类的定义,下面应该解决您的合作de:

package p1; 
public class Matrix { 

    public Matrix(int b,Vector...vectors) { 

     double myArray[][] = new double[vectors.length][]; 
     int row = vectors.length; 

     int column = vectors.length; 
     for (int i = 0; i < row; i++) { 
      myArray[i] = new double[column]; 
     } 


     for (int i = 0; i < row; i++) { 
      for (int j = 0; j < column; j++) { 
       if(b==0) { 
        myArray[i][j] = vectors[i].getYourArray()[j]; // change made here 
       } else { 
        myArray[j][i] = vectors[i].getYourArray()[j]; // change made here 
       } 
      } 
     } 
    } 
} 
+0

我如何获得行和列号以乘以常数方法 –

+0

它看起来像是用一个二维数组来表示一个矩阵,所以您可以将该数组存储为Matrix对象的一部分。对于一个'multiplyConstant(double constant)'方法,你可以简单地通过嵌套循环遍历数组的每一个入口(类似于你在上面构造函数中的方式),并将每个入口乘以该常量。 – Michael

+0

虽然如果你有一个具体的问题,你应该把它作为一个单独的问题发布,因为它不再与原来的问题有关。如果我的答案解决了您的原始问题,请记得接受答案。 – Michael

相关问题