① 用java编写程序用一个二维数组a[ ][ ]存放3*3矩阵,求它的转置矩阵b[ ][ ]。
public class T {
public static void main(String[] args) {
int i,j;
int[][] a = {{1,1,1},{2,2,2},{3,3,3}};
int[][] b = new int[3][3];
System.out.print("初始矩阵:\n");
for(i=0;i<3;i++) {
for(j=0;j<3;j++) {
System.out.print(a[i][j]+" ");
}
System.out.print("\n");
}
System.out.print("转置矩阵:\n");
for(i=0;i<3;i++) {
for(j=0;j<3;j++) {
b[i][j] = a[j][i];
System.out.print(b[i][j]+" ");
}
System.out.print("\n");
}
}
}
② java行列值的互换
二维数组的行列值互换,又叫矩阵的转置,数组a转置后应该是1,4;2,5;3,6;
完整的矩阵转置的Java程序如下
③ 如何用java编写一个矩阵的转置
(别说格式有问题代码就是这样的)编写矩阵显示方法,用于显示我们的矩阵数据;
private static void printArray(int[][] arr){
for(int i=0;i<arr.length;i++){
for(int j=0;j<arr.length;j++){
System.out.print(arr[i][j]+" ");
}
System.out.println();
填写一个要求解转置的矩阵方法;
编写行变列列变行的代码,即实现我们的矩阵值装置求解方法;
public static void main(String[] args) {
int arr[][] =new int[][]{{1,2,3},{4,5,6},{7,8,9}};
System.out.println("行列互换前");
printArray(arr);
int arr2[][]=new int[arr.length][arr.length];
for(int i=0;i<arr.length;i++){
for(int j=0;j<arr.length;j++){
arr2[i][j]=arr[j][i];
}
}
System.out.println("行列互换后:");
printArray(arr2);
④ 用java声明Matrix类表示矩阵,使用二维数组存储矩阵元素,实现以下方法:
我简单的叙述下抄,matrix就一个二维数组,矩阵的转置就是对角上的折叠,说白了就是两个值的互换]。求和就非常简单了,必须是行和列都相同的才行,把对应位置的值加起来就ok。转置的具体方式可参考线性代数里的介绍
⑤ java矩阵转置
你的转置意思是 行列交换?
public static Object[][] turnA(Object[][] a){
Object[][] b=new Object[a[0].length][a.length];
for(int i=0;i<a.length; i++)
for(int j=0;j<a[0].length;j++)
b[j][i]=a[i][j];
return b;
}
这个方法转置的是对象矩阵,因此不能传入基本变量的数组,需要用类型包装器包装。
e.g:
Integer[][] i=new Integer[3][5];
//int[][] i=new int[4][3];
//Can't use here; Integer,Double,String,byte and so on..
Random r=new Random();
for(int j=0;j<i.length;j++){
Arrays.fill(i[j], r.nextInt(100));
System.out.println(Arrays.toString(i[j]));
}
Object[][] o=turnA(i);
for(int j=0;j<o.length;j++){
System.out.println(Arrays.toString(o[j]));
这是static void main里的一段验证程序,程序最前面需要
import java.util.*;