Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 2x3转置矩阵中的ArrayIndexOutofBoundsException_Java_Matrix - Fatal编程技术网

Java 2x3转置矩阵中的ArrayIndexOutofBoundsException

Java 2x3转置矩阵中的ArrayIndexOutofBoundsException,java,matrix,Java,Matrix,我正在做矩阵转置,下面的代码适用于2x2转置矩阵,但它不适用于2x3转置矩阵,请帮助我犯了什么错误 例外情况: 线程“main”java.lang.ArrayIndexOutOfBoundsException中出现异常异常:2 包装Sep20; 导入java.util.Scanner; 公共类TMatrix{ 公共静态void main(字符串[]args){ 扫描仪输入=新扫描仪(系统输入); System.out.println(“输入行数”); int row=in.nextInt();

我正在做矩阵转置,下面的代码适用于2x2转置矩阵,但它不适用于2x3转置矩阵,请帮助我犯了什么错误

例外情况:

线程“main”java.lang.ArrayIndexOutOfBoundsException中出现异常异常:2

包装Sep20;
导入java.util.Scanner;
公共类TMatrix{
公共静态void main(字符串[]args){
扫描仪输入=新扫描仪(系统输入);
System.out.println(“输入行数”);
int row=in.nextInt();
System.out.println(“输入冒号”);
int col=in.nextInt();
int first[][]=新的int[行][col];
int转置[][]=新的int[col][row];
System.out.println(“输入矩阵”);
对于(int i=0;i对于(int j=0;j转置矩阵是
int[col][row]
,因此在打印时必须切换
i
j

for (int i = 0; i < row; i++) {
    for (int j = 0; j < col; j++) 
    {
        System.out.print(transpose[j][i]+"\t");
    }
    System.out.println(); // print each row on a new line
}
for(int i=0;i
现在我的代码工作了,我忘了在最后一个for循环中更改条件

for (int i = 0; i <col; i++) {
for (int j = 0; j<row ; j++) {
System.out.print(transpose[i][j]+"\t");
}

for(int i=0;i问题在于打印

通过切换索引,可以正确地将2x3转换为3x2,但仍在尝试打印2x3矩阵

只需更改
限制的

for (int i = 0; i <col; i++) {
    for (int j = 0; j <row; j++) {
        System.out.print(transpose[i][j]+"\t");
    }
}

for(int i=0;我从不复制和粘贴代码:P-1——错误消息直接指向了有问题的行。你应该在问题中识别出那行。@FaddishWorm-不,从来没有人这样做过。或者至少Lovelace女士没有…非常喜欢。
for (int i = 0; i <col; i++) {
    for (int j = 0; j <row; j++) {
        System.out.print(transpose[i][j]+"\t");
    }
}