新手求解3×2矩阵转置为2×3矩阵

yukcheon 2017-03-28 11:15:13
package com.matrix;

//import com.sun.java_cup.internal.runtime.Scanner;
import java.util.*;

public class MatrixTest {
public static void main(String[] args) {
final int ROW = 3;
final int COLUMN = 2;
Scanner in = new Scanner(System.in);
System.out.println("Plz enter two matrices: \n");

int[][] ma = new int[ROW][COLUMN];
int[][] mb = new int[ROW][COLUMN];
int[][] md = new int[COLUMN][ROW];

System.out.println("Enter a 3 × 2 matrix: ");
for (int i = 0; i < ROW; i++) {
for (int j = 0; j < COLUMN; j++) {
ma[i][j] = in.nextInt(); // fills in ma
}
}

System.out.println("Enter another 3 × 2 matrix: ");
for (int i = 0; i < ROW; i++) {
for (int j = 0; j < COLUMN; j++) {
mb[i][j] = in.nextInt(); // fills in mb
}
}

System.out.println("First PLUS second equals to: ");
for (int i = 0; i < ROW; i++) {
for (int j = 0; j < COLUMN; j++) {
mb[i][j] += ma[i][j];
System.out.print("\t" + mb[i][j]);
}
System.out.print("\n");
}

// give md transposed by ma
for (int i = 0; i < ma.length; i++) { // a row's length
for (int j = 0; j < ma[0].length; j++) { // a column's length
md[j][i] = ma[i][j];
}
}

System.out.println("md is transposed by ma, which is: ");
for (int i = 0; i < ma[0].length; i++) {
for (int j = 0; j < ma.length; j++) {
System.out.print("\t" + md[i][j]);
}
System.out.print("\n");
}
}
}


代码如上所示,求解 3×2 矩阵转置为 2×3 矩阵,我的写法输出的一直是

1 3 5
2 4 6

不知如何修改才能输出为

1 2 3
4 5 6

诚心求解答,感谢 :-)
...全文
1095 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
suking163 2017-03-28
  • 打赏
  • 举报
回复
首先,lz你这是一个3行2列的数组,一次输入123456之后得到的数组结构应该是这样的 1 2 3 4 5 6 经过你的3×2 矩阵转置为 2×3 矩阵 就变成 1 3 5 2 4 6 相当于左下角跟右上角位置对调,这样的对调是没法变成你要求的 数组 1 2 3 4 5 6 如果想变成你要求的这样就需要再输入的时候改变一下

                System.out.println("Enter a 3 × 2 matrix: ");
		for (int i = 0; i < COLUMN; i++) {
			for (int j = 0; j < ROW; j++) {
				ma[j][i] = in.nextInt(); // fills in ma
			}
		}
这样应该就能得到你想要的结果了

62,628

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧