「矩阵表示java」矩阵表示符号

博主:adminadmin 2022-11-26 18:10:06 50

今天给各位分享矩阵表示java的知识,其中也会对矩阵表示符号进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

用java声明Matrix类表示矩阵,使用二维数组存储矩阵元素,实现以下方法:

public class Matrix {

private static String matrix_A;

private int mx[][], m, n;

public Matrix(int r, int c) {

m = r;

n = c;

mx = new int[m][n];

iniMatrix();

}

public Matrix() {

m = 3;

n = 3;

mx = new int[3][3];

iniMatrix();

}

public void iniMatrix()// 随机取数

{

int i, j;

for (i = 0; i = m - 1; i++)

for (j = 0; j = n - 1; j++)

mx[i][j] = (int) (Math.random() * 100);

}

public void tranMatrix()// 转置矩阵

{

int i, j, t;

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

for (i = 0; i = m - 1; i++)

for (j = 0; j = n - 1; j++)

mt[i][j] = mx[i][j];

t = m;

m = n;

n = t;

mx = new int[m][n];

for (i = 0; i = m - 1; i++)

for (j = 0; j = n - 1; j++)

mx[i][j] = mt[j][i];

}

public void printMatrix()// 输出矩阵所有值

{

int i, j;

for (i = 0; i = m - 1; i++) {

for (j = 0; j = n - 1; j++)

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

System.out.println();

}

}

//判断一个矩阵是否为上三角矩阵

public boolean isUpperTriangularMatrix() {

int i, j = 0;

int c = this.mx[1][0];

for(i=1; ithis.mx.length; i++)

for(j=0; ji; j++)

if(this.mx[i][j] != c)

break;

if(i=this.mx.length)

return true;

return false;

}

public void addMatrix(Matrix b)// 矩阵相加

{

int i, j;

for (i = 0; i = m - 1; i++)

for (j = 0; j = n - 1; j++)

mx[i][j] = mx[i][j] + b.mx[i][j];

}

public static void main(String args[]) {

Matrix ma = new Matrix(4, 3);

Matrix mb = new Matrix(4, 3);

System.out.println("The matrix_A:");

ma.printMatrix();

System.out.println("The matrix_B:");

mb.printMatrix();

if(ma.isUpperTriangularMatrix())

System.out.println("上三角矩阵:\n" + ma.isUpperTriangularMatrix());

System.out.println("Matrix_A + Matrix_B:");

ma.addMatrix(mb);

ma.printMatrix();

System.out.println("Transpose Matrix_A:");

mb.tranMatrix();

mb.printMatrix();

System.out.println("Transpose Matrix_A+Matrix_B:");

mb.tranMatrix();

mb.printMatrix();

}

}

用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就可以了。

用java怎么写矩阵乘法?

import java.util.Scanner; 

public class Matrix { 

public double[][] create() { 

Scanner sc = new Scanner(System.in) ; 

System.out.print("请输入矩阵的行高:"); 

int a = sc.nextInt() ; 

System.out.print("请输入矩阵的列宽:"); 

int b = sc.nextInt() ; 

double[][] x = new double[a][b] ; 

for(int i=0;ilt;a;i++){ 

for(int j=0;jlt;b;j++){ 

System.out.print("请输入元素x["+i+"]["+j+"]的值:" ); 

x[i][j] = sc.nextDouble() ; 

return x ; 

public double[][] multiply(double[][] x,double[][] y){ 

double[][] result = null ; 

int a = x[0].length ; 

int b = y.length ; 

if(a != b){ 

System.out.println("输入的维数不匹配,不能进行运算"); 

}else{ 

int c = x.length ; 

int d = y[0].length ; 

result = new double[c][d] ; 

for(int i=0;ilt;c;i++){ 

for(int j=0;jlt;d;j++){ 

double sum = 0 ; 

for(int k=0;klt;a;k++){ 

sum += x[i][k]*y[k][j] ; 

result[i][j] = sum ; 

return result ; 

public void print(double[][] x){ 

System.out.println("矩阵为:"); 

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

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

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

System.out.println(); 

测试类: 

public class TestMatrix { 

public static void main(String[] args) { 

Matrix m = new Matrix() ; 

//double[][] x = {{1,2},{3,2}} ; 

//double[][] y = {{1,2,1},{2,3,3}} ; 

System.out.println("创建第一个数组:") ; 

double[][] x = m.create() ; 

m.print(x) ; //用来验证输入的是否和你一样的,没啥作用 

System.out.println("创建第二个数组:"); 

double[][] y = m.create() ; 

m.print(y) ; //用来验证输入的是否和你一样的,没啥作用 

double[][] result = m.multiply(x, y) ; 

if(result == null){ 

return ; //如果输入的矩阵不能运算就不输出结果了。 

m.print(result) ; 

}

Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。 Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。

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

The End

发布于:2022-11-26,除非注明,否则均为首码项目网原创文章,转载请注明出处。