矩阵标准化java代码 矩阵标准化java代码是什么-成都创新互联网站建设

关于创新互联

多方位宣传企业产品与服务 突出企业形象

公司简介 公司的服务 荣誉资质 新闻动态 联系我们

矩阵标准化java代码 矩阵标准化java代码是什么

用java:利用二维数组,任意给出一个矩阵,编写实现矩阵转置的代码

借花献佛

成都创新互联公司是专业的平泉网站建设公司,平泉接单;提供网站制作、成都网站建设,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行平泉网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!

/**

* 实现二维数组的转置

* @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();

//        }

//        

// }

//

//}

用JAVA写一个矩阵类

昨天刚帮一个网友改编的,输出矩阵并且在矩阵求幂后输出矩阵的一个类,直接可以运行。

注释都有的。希望你用的得到。import java.util.Scanner;

public class JuZhen {

//定义计算方法

public static int calc(int x, int y,int score){

if(x==0 y==0){

score = 0;

}else {

score = 1;

}

return score;

}

//输入矩阵

public static void shuru(){

Scanner input = new Scanner(System.in);//Scanner是用来接纳系统控制台输的字符串的

System.out.print("请输入矩阵的阶数:");

int n = input.nextInt(); //取一个输入的字符赋值给n

int M[][] = new int[n][n]; //定义数组维数.初始化数组,定义了一个双向的长度为

//n的

System.out.print("请输入矩阵的的值(0-1):");

for(int i=0;iM.length ;i++){ //不能以0开始

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

M[i][j] = input.nextInt();

}

}

System.out.println("你输入的矩阵为:");

for(int i=0;iM.length ;i++){ //显示矩阵

System.out.print("\n");

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

System.out .print(M[i][j] + "\t") ;

}

}

}

//仅仅是一个求幂的递归。

int myPow(int x, int y) {

int pow = 0;

if (y 0) {

pow = x * myPow(x, y - 1);// 2,3//2*2,3-1

}

if (y 0) {

pow = 1 / x * myPow(x, y + 1);

}

if (y == 0) {

pow = 1;

}

return pow;

}

//程序入口

public static void main(String[] args){

Scanner input = new Scanner(System.in);

System.out.print("请输入矩阵的阶数:");

int n = input.nextInt();//这个相当于确定行数。

int M[][] = new int[n][n];

//定义数组维数

System.out.print("请输入矩阵的的值(0-1):");

for(int i=0;iM.length ;i++){ //外循环表示行,在外循环已知的情况下去填内循环,内循环表示列

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

M[i][j] = input.nextInt();

}

}

int temp[][] =new int[n][n];

int m[][] =new int[n][n];

System.out.println("你输入的矩阵为:");

for(int i=0;iM.length ;i++){ //显示矩阵

System.out.print("\n"); //执行完外循环也就是打印出一行后换行

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

temp[i][j] = M[i][j] ; //赋给矩阵temp

System.out .print(M[i][j] + "\t") ;//执行完内循环也就是一列时空两格。\t为tab键起退格作用

}

}

System.out.print("\n\n你想求几次方:");

int c =input.nextInt(); //获得幂次

for (int k=0; kc;k++){ //最外层的循环和里边的两层循环也就是二维数组里的每个都有交集,也就是每个都要求幂

for(int i=0 ; iM.length; i++){

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

m[i][j]= new JuZhen().myPow(temp[i][j],c);

}

}

}//for k

for(int i=0;im.length ;i++){ //显示矩阵

System.out.print("\n");

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

System.out .print(m[i][j] + "\t") ;

}

}

}//main

}//class JuZhen

用JAVA编写矩阵

public static void main(String[] args) throws Exception {

print(create(getNum()));

}

private static int getNum() {

Scanner scanner = new Scanner(System.in);

int n = 0;

do {

System.out.println("请输入要生成的阶数:");

String input = scanner.next();

if (isDigital(input)) {

n = Integer.parseInt(input);

if (n = 0) {

System.out.println("阶数必须大于0");

}

}

} while (n == 0);

return n;

}

private static int[][] create(int n) {

int[][] num = new int[n][n];

int ax = 1, ay = 0, x = 0, y = 0;

for (int m = 1; m = n * n; m++) {

num[x][y] = m;

int tmpx = x + ax;

int tmpy = y + ay;

if (tmpx = n || tmpx 0 || tmpy = n || tmpy 0 || num[tmpx][tmpy] != 0) {

if (ax == 0) {

ax = -ay;

ay = 0;

} else if (ay == 0) {

ay = ax;

ax = 0;

}

}

x += ax;

y += ay;

}

return num;

}

private static void print(int[][] num) {

int length = String.valueOf(num.length * num.length).length();

for (int i = 0; i num.length; i++) {

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

String tmp = String.valueOf(num[i][j]);

while (tmp.length() length) {

tmp = " " + tmp;

}

System.out.print(tmp + " ");

}

System.out.println();

}

}

private static boolean isDigital(String input) {

if (input == null || input.length() == 0) return false;

for (int i = 0; i input.length(); i++) {

char ch = input.charAt(i);

if (!Character.isDigit(ch)) {

System.out.println("输入的阶数必须为数字");

return false;

}

}

return true;

}

运行时输入要生成的阶数就可以了,比如生成问题上的矩阵输入4就可以了。

写一个关于6*6矩阵的JAVA程序

1、矩阵类

public class Matrix {

/*      矩阵相乘          */

public static double[][] multiplyMatrix(double[][] a,double[][] b){

if(a[0].length != b.length) {

return null;

}

double[][] c=new double[a.length][b[0].length];

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

for(int j=0;jb[0].length;j++) {

for(int k=0;ka[0].length;k++) {            

c[i][j] += a[i][k] * b[k][j]; 

}

}

return c;

}

2、测试函数(main函数)

public static void main(String[] args) {

Scanner input=new Scanner(System.in);

int m = n = k = 6;

double [][]a=new double[m][n];  //定义一个m*n的矩阵

double [][]b=new double[n][k];  //定义一个n*k的矩阵 

System.out.println("输入连续的数构成数组a:");

for(int i=0;im;i++)

for(int j=0;jn;j++)

a[i][j]=1.0;

System.out.println("输入连续的数构成数组b:");

for(int i=0;in;i++)

for(int j=0;jk;j++)

b[i][j]=1.0;

double [][]c=multiplyMatrix(a, b);

System.out.println("Matrix a:");

printMatrix(a);    //打印a

System.out.println("Matrix b:");

printMatrix(b);    //打印b

System.out.println("Matrix c:");

printMatrix(c);    //打印c

input.close(); 

}

}

3、打印函数(可以放到main函数所在类中)

public static void printMatrix(double[][] c) {

if (c!=null) {

for(int i=0;ic.length;i++) {

for(int j=0;jc[0].length;j++) {

System.out.printf("%-8.1f",c[i][j]);  //保留1位小数;

}

System.out.println();

}

} else {

System.out.println("无效");

}

System.out.println();

}

用java 编写一个矩阵类Matrix,要求能利用该矩阵类生成任意行、列的矩阵对象,比如3╳5矩阵,10╳20矩阵

public class Matrix {

// 表示行和列

private int mRow, mColumn;

// 构造方法

public Matrix(int row, int column) {

mRow = row;

mColumn = column;

}

// 获取0-20随机数

private int random() {

double random1 = Math.random();// 这个Math类的方法可以获取0.0-1.0之间的随机数

double random2 = random1 * 20; // 0.0 - 20.0

return (int) random2;

}

// 创建矩阵

private void createMatrix() {

int totalCount = mRow * mColumn; // 总共有那么多

for (int count = 1; count = totalCount; count++) {

int number = random();// 上面的方法

System.out.print(number  10 ? "0" + number : number); // 输出数字,如果数字小于10,前面加0补全两位

System.out.print(" "); // 分隔符,随便填

if (count % mRow == 0) {

System.out.println(); // 换行

}

}

}

public static void main(String[] args) {

Matrix matrix = new Matrix(3, 5); // 几行几列传进去

matrix.createMatrix();

}

}

为了经验我也是蛮拼的了


当前文章:矩阵标准化java代码 矩阵标准化java代码是什么
链接分享:http://kswsj.cn/article/hgsisi.html

其他资讯