可以说我的矩阵A的阶数为3 x 2,矩阵B的阶数为2 x4。我得到的矩阵应该为3 x 4阶数,并且应该包含矩阵A和矩阵B的加法。为了实现这一点,我必须先通过添加必要的零,使矩阵A和矩阵B的大小相等(均为3 x 4)。
示例:-
Encoder
sumArray(a,b)将返回:{{2,1,0,1},{2,2,1,1},{1,0,0,0}}
我尝试过的是。 (ans.length表示结果矩阵长度)
int[][] a = { {1,0}, {1,1}, {1,0} };
int[][] b = { {1,1,0,1}, {1,1,1,1} };
答案 0 :(得分:1)
首先,您必须找到输出数组的大小。
int h = a.length>b.length?a.length:b.length;
int w = a[0].length>b[0].length?a[0].length:b[0].length;
int[][] result = new int[h][w];
然后执行您的作业。
for(int i = 0; i<result.length; i++){
for(int j = 0; j<result[i].length; j++){
if(i<a.length && j < a[i].length){
result[i][j] += a[i][j];
}
if(i<b.length && j < b[i].length){
result[i][j] += b[i][j];
}
}
}
return result;
答案 1 :(得分:0)
使用此代码。只需使尺寸识别零件动态化
import java.util.Arrays;
public class Main
{
public static void main (String[]args)
{
System.out.println ("Hello World");
int m1 = 3, n1 = 1, m2 = 2, n2 = 4; // m1 and n1 are matrix 'x' dimensions and m2 & n2 are natrix 'y' dimensions
int x[][] = {
{1},
{2},
{3}
};
int y[][] = {
{1, 2, 1, 2},
{1, 2, 1, 2}};
int op[][] = new int[m1][n2];
for (int[] row: op)// filling empty matrix with zeroes
Arrays.fill(row, 0);
for (int i = 0; i < m1; i++)
{
for (int j = 0; j < n1; j++)
{
op[i][j] = x[i][j];
}
}
int op2[][] = new int[m1][n2];
for (int[] row: op2)// filling empty matrix with zeroes
Arrays.fill(row, 0);
for (int i = 0; i < m2; i++)
{
for (int j = 0; j < n2; j++)
{
op2[i][j] = y[i][j];
}
}
for(int i=0;i<m1; i++)
{
for(int j=0;j<n2;j++)
{
System.out.print((op[i][j]+op2[i][j])+" ");
}
System.out.println();
}
}
}