我的目标是将矩阵a和矢量vec相乘:
public static int[] vectorProduct(int[][] a, int[] x){
if(x.length != a[0].length)
throw new RuntimeException("Illegal matrix dimensions.");
int [] y = new int[a.length];
for(int i = 0; i<y.length;i++){
int sum=0;
for(int j = 0; j < a[0].length; j++){
sum+= a[i][j] * x[j];
}
}
return y;
}
我的主要课程如下:
public static void main(String[] args){
int [][] d = { {1,2,3},{1,2,3},{1,2,3}};
int [] vec = { 1,1,1 };
System.out.println("Vector product of matrix A and vecor x: ");
int[] v = MatMath.vectorProduct(d, vec);
print(v);
}
我应该得到[3,6,9],但我得到[0,0,0]作为我的输出。我做错了什么?
答案 0 :(得分:3)
您永远不会向y
数组
int [] y = new int[a.length];
for(int i = 0 ; i < y.length ; i++){
int sum = 0;
for(int j = 0 ; j < a[0].length ; j++){
sum += a[i][j] * x[j];
}
y[i] = sum;
}
return y;
答案 1 :(得分:1)
我做错了什么?
您根本没有为int array y
分配任何价值。
我应该得到[3,6,9],但我得到[0,0,0]作为我的输出
是的,因为默认情况下
的所有元素 int
数组正在被0
答案 2 :(得分:0)
您需要为数组y
-
for(int i = 0; i<y.length;i++){
int sum=0;
for(int j = 0; j < a[0].length; j++){
sum+= a[i][j] * x[j];
}
y[i] =sum; //this should help you assign the values
}