首页 > 编程知识 正文

java写入一个矩阵,java定义一个矩阵

时间:2023-12-29 13:16:55 阅读:330356 作者:VVGG

本文目录一览:

帮忙编写一个java程序,建立一个矩阵,并能返回其中一个元素周围的值..

public class MatrixNeighbors {

    private int rows;

    private int columns;

    private int[][] matrix = new int[rows][columns];

    public int[][] getMatrix() {

        return matrix;

    }

    public void setMatrix(int[][] matrix) {

        this.matrix = matrix;

    }

    public MatrixNeighbors(int rows, int columns) {

        super();

        this.rows = rows;

        this.columns = columns;

    }

    public int getRows() {

        return rows;

    }

    public void setRows(int rows) {

        this.rows = rows;

    }

    public int getColumns() {

        return columns;

    }

    public void setColumns(int columns) {

        this.columns = columns;

    }

    public String neighbours(int row, int column) {

        String result = "prints: ";

        if (row = rows - 1  column = columns - 1  row = 0  column = 0) {

            for (int i = row - 1; i = row + 1; i++) {

                for (int j = column - 1; j = column + 1; j++) {

                    if (i = 0  j = 0  i = rows - 1  j = columns - 1) {

                        if (i == row  j == column) {

                        } else {

                            result += i + "," + j + ";    ";

                        }

                    }

                }

            }

        } else {

            return "Error!";

        }

        return result;

    }

}

public class Test {

    public static void main(String[] args) {

        MatrixNeighbors m1 = new MatrixNeighbors(2, 3);

        System.out.println(m1.neighbours(1, 1));

        MatrixNeighbors m2 = new MatrixNeighbors(5, 4);

        System.out.println(m2.neighbours(4, 3));

        System.out.println(m2.neighbours(4, 4));

    }

}

java如何输入一个自定义矩阵

java中自定义矩阵:

public static void main(String[] args) {

// TODO Auto-generated method stub

int n= 5;//长度

int array_int[][] = new int[n][n];

//初始化

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

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

if(i==0){

if(j%2==0){

array_int[i][j] = (j+1)*(j+1);

}

else{

array_int[i][j] = array_int[i][j-1]+1;

}

}

else if(j==0){

if(i%2==1){

array_int[i][j] = (i+1)*(i+1);

}

else {

array_int[i][j] = array_int[i-1][j]+1;

}

}

else{

if(ij){

if(j%2==0){

array_int[i][j] = array_int[0][j]-i ;

}

else{

array_int[i][j] = array_int[0][j]+i ;

}

}

else{

if(i%2==0){

array_int[i][j] = array_int[i][0]+j ;

}

else{

array_int[i][j] = array_int[i][0]-j ;

}

}

}

//System.out.println(i+" "+j+":"+array_int[i][j] );

}

}

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

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

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

}

System.out.println();

}

}

当等于5时的运行结果:

1 2 9 10 25

4 3 8 11 24

5 6 7 12 23

16 15 14 13 22

17 18 19 20 21

java语言中如何在控制台上输入一个矩阵呢?

public class ABC {

public static void main(String[] args)throws java.io.IOException {

//录入部分,每个数之间用空格隔开,录完一行回车

int rows = 4;//行数

byte[] b = new byte[1024];

int read;

int[][] tmp = new int[rows][];

System.out.println("输入: ");

for(int i=0; irows; i++){

read=System.in.read(b);

String row=new String(b,0,read).trim();

String[] sp = row.split(" +");

tmp[i]=new int[sp.length];

for(int k=0;ktmp[i].length; k++)

try{

tmp[i][k]=Integer.parseInt(sp[k]);

}catch(Exception e){e.printStackTrace();}

}

//输出部分

System.out.println("输出: ");

for(int i=0; irows; i++){

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

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

System.out.print('n');

}

}

}

//===============结果===============//

输入:

1 2 3 4 5

2 3 4 5 6

3 4 5 6 7

4 5 6 7 8

输出:

1,2,3,4,5,

2,3,4,5,6,

3,4,5,6,7,

4,5,6,7,8,

用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("nn你想求几次方:");

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

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。