㈠ java里Matrix的簡單問題
importjava.io.FileWriter;
importjava.io.IOException;
importjava.util.Arrays;
publicclassMatrix
{
booleanisReshapable(intlength,introw,intcol)
{
if(length<0||row<0||col<0)
{
returnfalse;
}
if(length==0)
{
if(row==0&&col==0)
{
returntrue;
}
else
{
returnfalse;
}
}
if(length==row*col)
{
returntrue;
}
returnfalse;
}
int[][]reshape(int[]vector,introw,intcol)
{
if(vector==null)
{
returnnull;
}
if(isReshapable(vector.length,row,col))
{
int[][]vectors=newint[row][col];
for(inti=0;i<row;i++)
{
vectors[i]=newint[col];
for(intj=0;j<col;j++)
{
vectors[i][j]=vector[i*col+j];
}
}
returnvectors;
}
returnnull;
}
voidwriteMatrix(Stringfilename,int[][]matrix)
{
try
{
FileWriterfw=newFileWriter(filename);
for(inti=0;i<matrix.length;i++)
{
for(intj=0;j<matrix[i].length;j++)
{
fw.write(matrix[i][j]+"");
if(j<matrix[i].length-1)
{
fw.write(",");
}
}
fw.write(" ");
}
fw.flush();
fw.close();
}
catch(IOExceptione)
{
e.printStackTrace();
}
}
publicstaticvoidmain(String[]args)
{
Matrixm=newMatrix();
int[]vector=newint[]{1,2,3,4,5,6,7,8,9,10,11,12};
System.out.println(Arrays.deepToString(m.reshape(vector,6,2)));
m.writeMatrix("matrix.txt",newint[][]{{1,2,3},{4,5,6},{7,8,9}});
}
}
㈡ java矩陣乘法
import java.util.Arrays;
public class Test {
static int[][] matrix1;
static int[][] matrix2;
public static void main(String[] args) {
matrix1=new int[][]{{1,2,3,4},{2,3,4,5},{3,4,5,6},{4,5,6,7},{5,6,7,8},{6,7,8,9}};
matrix2=new int[][]{{9,8,7,6,5,4},{8,7,6,5,4,3},{7,6,5,4,3,2},{6,5,4,3,2,1}};
if(matrix1.length!=matrix2[0].length){//若無法相乘則退出
System.out.println("ivalid input");
System.exit(0);
}
int[][] r = new int[matrix1[0].length][matrix2.length];
for(int i=0;i<r.length;++i){
for(int j=0;j<r[i].length;++j){//每一個r[i][j]的運算:
r[i][j]=0;//初始化
for(int k=0;k<matrix2.length;++k)
r[i][j]+=matrix1[i][k]*matrix2[k][j];
}
}
//輸出結果
for(int i=0;i<r.length;++i)
System.out.println(Arrays.toString(r[i]));
}
}
㈢ 用java 編寫一個矩陣類Matrix,要求能利用該矩陣類生成任意行、列的矩陣對象,比如3╳5矩陣,10╳20矩陣
publicclassMatrix{
//表示行和列
privateintmRow,mColumn;
//構造方法
publicMatrix(introw,intcolumn){
mRow=row;
mColumn=column;
}
//獲取0-20隨機數
privateintrandom(){
doublerandom1=Math.random();//這個Math類的方法可以獲取0.0-1.0之間的隨機數
doublerandom2=random1*20;//0.0-20.0
return(int)random2;
}
//創建矩陣
privatevoidcreateMatrix(){
inttotalCount=mRow*mColumn;//總共有那麼多
for(intcount=1;count<=totalCount;count++){
intnumber=random();//上面的方法
System.out.print(number<10?"0"+number:number);//輸出數字,如果數字小於10,前面加0補全兩位
System.out.print("");//分隔符,隨便填
if(count%mRow==0){
System.out.println();//換行
}
}
}
publicstaticvoidmain(String[]args){
Matrixmatrix=newMatrix(3,5);//幾行幾列傳進去
matrix.createMatrix();
}
}
為了經驗我也是蠻拼的了
㈣ java中 matrix[0].length 是什麼意思 求解~~~~ 那matrix.length呢
先說結論,matrix.length表示的是行數,matrix[0].length表示的是列數。可通過一下代碼進行實驗,如果身邊沒有Java環境,可在ideone.com進行嘗試。
int[][] arr = new int[3][4];
System.out.println(arr.length);
System.out.println(arr[0].length);
㈤ 用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; i<this.mx.length; i++)
for(j=0; j<i; 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編寫matrix類,這個矩陣類可以存放各種類型的數據,char、string、int,該怎麼編
你define變數的時候 直接用String就行了唄 如果裡面的數值需要進行運算的時候 轉化為int計算 然後再轉成String保存就行了
String To Int: Integer.parseInt(x); //x是被轉化的String型參數;
Int To String:String.valueOf(y); //y是被轉化的int型參數;
int currPara = Integer.parseInt(x);
String.valueOf(currPara);
㈦ 用JAVA編寫矩陣
這樣定義就可以:int[][] array = {{1,13,12,11},{2,14,17,10},{3,15,16,9},{4,5,6,7,8}};
想要查看的話:
for(int i = 0; i < array.length; i ++) {
for(int j = 0; j < array[i].length; j ++) {
System.out.println(array[i][j]);
}
}
註:java 中的二維數組中每一維的長度是可以不同的,如例子中的,前三個長度為4,第四個長度則為5,這樣是允許的。
㈧ JAVA編程 聲明一個矩陣類Matrix,有這樣一些實例方法:將一個矩陣轉置、求兩個矩陣的和。
我簡單的敘述下,matrix就一個二維數組,矩陣的轉置就是對角上的折疊,說白了就是兩個值的互換]。求和就非常簡單了,必須是行和列都相同的才行,把對應位置的值加起來就ok。轉置的具體方式可參考線性代數里的介紹
㈨ java構造一個矩陣
1、java構造函數--數組 在構造函數中初始化數組,如 public class array { private int [][] matrix; public array(int r,int c) { matrix=new matrix[r][c]; } }
matrix=new matrix[r][c];
2、這里是new int[][]; java中8個基本數據類型都是有默認值的,int默認值為0 ,
3、所以數組中默認都為0.
4、但是切記有默認值的變數必須是類的屬性,方法中局部變數必須賦值才可以使用。
㈩ Java中Matrix的問題
importjava.util.Arrays;
publicclassMatrix
{
booleanisReshapable(intlength,introw,intcol)
{
if(length<0||row<0||col<0)
{
returnfalse;
}
if(length==0)
{
if(row==0&&col==0)
{
returntrue;
}
else
{
returnfalse;
}
}
if(length==row*col)
{
returntrue;
}
returnfalse;
}
int[][]reshape(int[]vector,introw,intcol)
{
if(isReshapable(vector.length,row,col))
{
int[][]vs=newint[row][col];
for(inti=0;i<row;i++)
{
vs[i]=newint[col];
for(intj=0;j<col;j++)
{
vs[i][j]=vector[i*col+j];
}
}
returnvs;
}
returnnull;
}
publicstaticvoidmain(String[]args)
{
Matrixm=newMatrix();
int[]vector=newint[]{1,2,3,4,5,6,7,8,9,10,11,12};
System.out.println(Arrays.deepToString(m.reshape(vector,2,6)));
System.out.println(Arrays.deepToString(m.reshape(vector,3,4)));
}
}