「矩阵置换java」矩阵置换是什么意思

博主:adminadmin 2023-01-20 23:54:08 310

本篇文章给大家谈谈矩阵置换java,以及矩阵置换是什么意思对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

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;

}

Java编程:交换矩阵里的两行?

1个3×3的整数矩阵,将它们存入数组 a 中,交换其第一行和最后一行后,再以矩阵格式输出。

java矩阵转置

你的转置意思是 行列交换?

public static Object[][] turnA(Object[][] a){

Object[][] b=new Object[a[0].length][a.length];

for(int i=0;ia.length; i++)

for(int j=0;ja[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;ji.length;j++){

Arrays.fill(i[j], r.nextInt(100));

System.out.println(Arrays.toString(i[j]));

}

Object[][] o=turnA(i);

for(int j=0;jo.length;j++){

System.out.println(Arrays.toString(o[j]));

这是static void main里的一段验证程序,程序最前面需要

import java.util.*;

java的矩阵转置找问题

你的Java矩阵转置程序我帮你改好了,主要问题是应该把矩阵中以主对角线对称的数两两交换,而不是简单赋值,冲掉原来的数,而且for-j循环只要访问主对角线下方的数就可以了,不要访问全矩阵的数,那样会使矩阵主对角线下方的数交换两次,从而等于没有转置.

完整的Java矩阵转置程序如下(改动的地方见注释)

package cn.itcast.chapter01;

public class ZhuanZhi {

 public static void main(String[] args) {

  int a[][]={{1,2,3},{4,5,6},{7,8,9}};

  for(int i=0;ia.length;i++)

  {

   for(int j=0;ji;j++)//这里把for(int j=0;ja[i].length;j++)改成for(int j=0;ji;j++)只访问主对角线下方的数

   {

    //这里交换主对角线下方的数和主对角线上方的数

    int temp=a[i][j];

    a[i][j]=a[j][i];

    a[j][i]=temp;

 

   }

 

  }

  //这里单独输出转置后的矩阵

  for(int i=0;ia.length;i++)

  {

   for(int j=0;ja[i].length;j++)

   {

    System.out.print(a[i][j]+" ");

   }

   System.out.println();

  }

 }

}

运行结果

如何用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和矩阵置换是什么意思的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。