
正文
矩阵转换java代码 java什么是矩阵转换?
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
用java:利用二维数组,任意给出一个矩阵,编写实现矩阵转置的代码
借花献佛
/**
* 实现二维数组的转置
* @author HAN
*
*/
public class transposition_Arrays2D_ch6_4 {
final static double PI=3.1415;
public static void main(String[] args) {
/*StaticTest st1=new StaticTest();
StaticTest st2=new StaticTest();
st1.method2("HAN");*/
/*****定义要用于转置的二维数组*******/
int arr2D[][]={{1,2,3},{4,5,6},{7,8,9}};
/*****构造结果新二维数组用于存放转置结果*******/
/*定义结果数组变量,注意 一定要先开辟一个内存,
否则只是地址传递,也就是说两个数组名实际上指向的是同一块内存*/
//而构造二维数组可以为维度来进行,不一定是一个矩阵,即每一行的长度不一定相同
int result_arr[][]=new int[arr2D.length][];//先实现第一维
for(int i=0 ; iarr2D.length;i++){ //再实现第二维
result_arr[i]=new int[arr2D[i].length];
}
// int result_arr[][]=Arrays.copyOf(arr2D, arr2D.length);
//上面这个命令行行不通!
/*****输出用于转置的二维数组*******/
for (int x[]:arr2D){
for(int e:x){
System.out.print(e+" ");
}
System.out.println();
}
System.out.println();
/*******进行元素倒置******/
for(int i=0 ; iarr2D.length;i++){
for(int j=0; jarr2D[i].length;j++){
result_arr[j][i]=arr2D[i][j]; //转置核心
}
}
/*****show the result in the result matrix*******/
for (int x[]:result_arr){
for(int e:x){
System.out.print(e+" ");
}
System.out.println();
}
}
}
//import java.util.Arrays;
//public class transposition_Arrays2D {
//
// public static void main(String[] args) {
// int arr2D[][]={{1,2,3},{4,5,6},{7,8,9}};
// /*定义结果数组变量,注意 一定要先开辟一个内存,
// 否则只是地址传递,也就是说两个数组名实际上指向的是同一块内存*/
// int result_arr[][]=new int[arr2D.length][];
// for(int i=0 ; iarr2D.length;i++){
// result_arr[i]=new int[arr2D[i].length];
// }
//
// // 进行元素倒置
// for(int i=0 ; iarr2D.length;i++){
// for(int j=0; jarr2D[i].length;j++){
// result_arr[j][i]=arr2D[i][j];
// }
// }
//
// // show the result in matrix
// for (int x[]:result_arr){
// for(int e:x){
// System.out.print(e);
// }
// System.out.println();
// }
//
// }
//
//}
相关问答
Q1: java编程的矩阵变换问题
/*我的想法是,先把二维矩阵转换成一维矩阵,这个循环一下就可以了,然后把输入的二维位置也转换成一维的位置,依此往前替换,补0,然后把这个一维矩阵再转换成二维矩阵**/
public static void main(String[] args) {
int[][] erwei = new int[][]{{1,10,3},{4,55,6},{73,8,9}};
int[] yiwei = toyiwei(erwei);
int x=1,y=2,num=0;
//要移动的元素在一维矩阵上的位置
num = (y-1)*erwei.length+(x-1);
//替换
for(int i=num;iyiwei.length-1;i++){
yiwei[i] = yiwei[i+1];
}
//补0
yiwei[yiwei.length-1]=0;
//转换为二维矩阵
erwei = toerwei(yiwei,erwei.length,erwei[0].length);
//打印
for(int i=0;ierwei.length;i++){
for(int j=0;jerwei[i].length;j++){
System.out.print(erwei[i][j]+" ");
}
System.out.println();
}
}
//二维矩阵转换成一维矩阵
static int[] toyiwei(int[][] erwei)
{
int[] rs = new int[erwei.length*erwei[0].length];
for(int i=0;ierwei.length;i++){
for(int j=0;jerwei[i].length;j++){
rs[i*erwei.length+j] = erwei[i][j];
}
}
return rs;
}
//一维矩阵转换成二维矩阵
static int[][] toerwei(int[] yiwei,int a,int b)
{
int[][] erwei = new int[a][b];
for(int i=0;ia;i++){
for(int j=0;jb;j++){
erwei[i][j]=yiwei[i*a+j];
}
}
return erwei;
}
Q2: 用java代码,实现m行n列矩阵的转换,即横向变为纵向,纵向变为横向(具体代码) 急~~~~~~~~
遍历时候控制方向就可以了,例如二维数组a[][]=[[a,b,c,d,e],[f,g,h,i,j],[k,l,m,n,o]]
for(int i=0;5;i++){
for(int j =0;j3;j++){
System.out.println(a[j][i]);
}
}
这个样子 就转过来了 要存的话,就顶一个数组 把结果存在里面就好了
Q3: 如何用java编写一个矩阵的转置?
int a[][] = {{1,2,3,4},{1,2,3,4},{1,2,3,4},{1,2,3,4},{1,2,3,4},{1,2,3,4},{1,2,3,4}};
int b[][] = new int [4][7];
for (int i = 0; i 4; i++) {
for (int j = 0; j 7; j++) {
b[i][j] = a[j][i];
}
}
System.out.println("矩阵a:");
for (int i = 0; i 7; i++) {
for (int j = 0; j 4; j++) {
if (j 3) {
System.out.print(a[i][j] + " ");
} else {
System.out.println(a[i][j] + " ");
}
}
}
System.out.println("矩阵a转置:");
for (int i = 0; i 4; i++) {
for (int j = 0; j 7; j++) {
if (j 6) {
System.out.print(b[i][j] + " ");
} else {
System.out.println(b[i][j] + " ");
}
}
}
代码写得烂不要喷我,我想解决思路就是这样吧!
关于矩阵转换java代码和java什么是矩阵转换?的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。






