在java中,如何将一个列表的所有元素与第二个列表的第一个元素相乘?
我有两份清单;清单1和清单2。list1由5个元素组成,list2由18个元素组成,list2的每个元素依次由一个(41X41)2D数组组成。如何将列表1的第一个元素与列表2的所有18个元素相乘?我必须对列表1的所有五个元素进行乘法运算 我试过了在java中,如何将一个列表的所有元素与第二个列表的第一个元素相乘?,java,arrays,list,multiplication,Java,Arrays,List,Multiplication,我有两份清单;清单1和清单2。list1由5个元素组成,list2由18个元素组成,list2的每个元素依次由一个(41X41)2D数组组成。如何将列表1的第一个元素与列表2的所有18个元素相乘?我必须对列表1的所有五个元素进行乘法运算 我试过了 List<List<Double>> Q = new ArrayList<List<Double>>(); for (int i = 0; i < list1.size(); i++){
List<List<Double>> Q = new ArrayList<List<Double>>();
for (int i = 0; i < list1.size(); i++){
List<Double[][]> list=new ArrayList<>(list2.size());
for (int j = 0; j < list2.size(); j++){
Double P[][] = new Double[41][41];
for (int k = 0; k < 41; k++){
for (int l = 0; l < 41; l++){
P[k][l] = list1.get(i) * list2.get(j)[k][l];
}
}
list.add(P);
}
Q.add(list);
}
List Q=new ArrayList();
对于(int i=0;i
有没有更好的方法可以让理解变得不那么复杂?如果list2的每个元素都由一个矩阵组成,您应该告诉Java您想要访问第一行和第一列中的元素
double y = list1.get(0)*list2.get(0)[0][0];
若我正确理解了你们的问题,那个么你们需要用数组乘以数字。但这种操作的结果也必须是数组
double[][] resultArray = new double[10][10];
for (int i = 0; i < 10; i++) {
for (int j = 0; i < 10; j++) {
resultArray[i][j] = list1.get(0) * list2.get(0)[i][j];
}
}
double[]resultArray=新的双精度[10][10];
对于(int i=0;i<10;i++){
对于(int j=0;i<10;j++){
resultArray[i][j]=list1.get(0)*list2.get(0)[i][j];
}
}
如果你想将两个数组相乘,我的意思是list1与list2的每个元素相乘,那么这是不可能的,因为你不能将1x2数组与10x10数组相乘。为此,第一个数组中的元素数必须为10,即第一个数组中的元素数(列)必须与第二个数组中的行数匹配。如何定义数字和数字矩阵之间的乘法运算?他们在线性代数中定义它的方式?谢谢..我理解这一点,但请阅读其他评论以理解我在说什么..我不确定你是否理解我的评论,你的其他评论也没有帮助。当你必须用所有元素乘以所有元素时,它首先意味着你必须用一个元素乘以一个元素,对吗?但一个列表中的“元素”是一个数字。另一个列表中的“元素”是数组。通常你只能将一个数乘以一个数,所以我们需要知道当你说要将一个数乘以一个数组时,你的意思是什么。一个数可以乘以一个矩阵,只需将该数乘以矩阵的所有元素。我需要将列表1的每个元素乘以列表2的所有元素。希望我能说清楚。这就是我现在为(int I=0;I