【Java开源代码栏目提醒】:网学会员为广大网友收集整理了,TextMatrix.java,希望对大家有所帮助!
package com.zf.s4;//鍒涘缓涓涓寘
import java.text.DecimalFormat;//寮曞叆绫?
public class TextMatrix {//鎿嶄綔鐭╅樀鐨勭被,浣跨敤浜岀淮鏁扮粍
private double[][]data;//鐭╅樀鏁版嵁
public TextMatrix(){}//榛樿鏋勯犲嚱鏁?
public TextMatrix(double[][]data){//鍒濆鍖栫煩闃?
if(CanTransToMatrix(data))//鍒ゆ柇鏁扮粍鏄惁鑳借浆鎹㈡垚鐭╅樀
this.data=this.cloneArray(data);
}
private static boolean CanTransToMatrix(double [][]data){//鍒ゆ柇浜岀淮鏁扮粍鑳藉杞崲鎴愮煩闃?
if(data==null) //鍒ゆ柇浜岀淮鏁扮粍鏄惁涓虹┖
return false;
for(int i=0;i<=data.length-2;i++){//寰幆渚濇姣旇緝濡傛灉闀垮害涓嶇瓑鍒欒繑鍥瀎alse
if(data[i].length!=data[i+1].length)//鏁扮粍闀垮害姣旇緝
return false;
}
return true;
}
public String showArray(double [][]data){//鏍煎紡鍖栨暟缁?
DecimalFormat format=new DecimalFormat("0.00");//鏁版嵁鏍煎紡鍖栦繚鐣欎簩浣嶅皬鏁?
StringBuffer buffer=new StringBuffer("");//澹版槑StringBuffer鍙互淇敼鏁版嵁
for(int i=0;i<data.length;i++){
for(int j=0;j<data.length;j++){//閬嶅巻浜岀淮鏁扮粍鎸夋牸寮忔樉绀?
buffer.append(format.format(data[i][j])).append(" ");//灏嗘暟缁勫厓绱犺浆鎹负鎸囧畾鏍煎紡
}
buffer.append("\n");//鎹㈣
}
return buffer.toString();
}
public void showData(){//璋冪敤showArray鏂规硶鏄剧ず浜岀淮鏁扮粍
System.out.println(showArray(this.data));
}
private double[][]cloneArray(double [][]data){//鍏嬮殕涓涓簩缁存暟缁?
if(data==null)
return null;
return (double [][])data.clone();
}
public double [][]getMatrixData(){//鑾峰緱鐭╅樀
return cloneArray(this.data);
}
public TextMatrix add(TextMatrix t){//鐭╅樀鍔犳硶杩愮畻
if(t==null) return null;
TextMatrix text=null;
double [][]tmData=t.getMatrixData();//鑾峰緱涓涓煩闃?
if((this.data.length!=tmData.length) ||
(this.data[0].length!=tmData[0].length)){//鍒ゆ柇鐭╅樀琛屾暟鍒楁暟鏄惁鐩哥瓑
System.out.println("涓や釜鐭╅樀澶у皬涓嶄竴");
return text;
}else{
double [][]result=new double[this.data.length][this.data[0].length];
for(int i=0;i<this.data.length;i++){//渚濇寰幆琛屾暟
for(int j=0;j<this.data[0].length;j++){//渚濇寰幆鍒楁暟
result[i][j]=this.data[i][j]+tmData[i][j];//涓や釜鐭╅樀鐩稿姞
}
}
text=new TextMatrix(result);//灏嗘柊鐢熸垚鐨勭煩闃典紶鍏ュ璞′腑
return text;//杩斿洖瀵硅薄
}
}
public TextMatrix subtration(TextMatrix t){//鐭╅樀鍑忔硶杩愮畻
if(t==null) return null;
TextMatrix text=null;
double [][]tmData=t.getMatrixData();//鑾峰緱涓涓煩闃?
if((this.data.length!=tmData.length) ||
(this.data[0].length!=tmData[0].length)){//鍒ゆ柇鐭╅樀琛屾暟鍒楁暟鏄惁鐩哥瓑
System.out.println("涓や釜鐭╅樀澶у皬涓嶄竴");
return text;
}else{
double [][]result=new double[this.data.length][this.data[0].length];
for(int i=0;i<this.data.length;i++){//渚濇寰幆琛屾暟
for(int j=0;j<this.data[0].length;j++){//渚濇寰幆鍒楁暟
result[i][j]=this.data[i][j]-tmData[i][j];//涓や釜鐭╅樀鐩稿噺
}
}
text=new TextMatrix(result);//灏嗘柊鐢熸垚鐨勭煩闃典紶鍏ュ璞′腑
return text;//杩斿洖瀵硅薄
}
}
public TextMatrix transposeMatrix() {//鐭╅樀杞疆,鏍煎紡涓篴[i][j]=b[j][i]
int Row = this.data[0].length;
int Column = this.data.length;
double[][] change = new double[Row][Column];//澹版槑涓涓簩缁存暟缁勶紝闀垮害鎸囧畾
for (int i = 0; i < Row; i++) {
for (int j = 0; j < Column; j++) {
change[i][j] = this.data[j][i];//寰幆杩涜杞疆
}
}
return new TextMatrix(change);
}
public static void main(String []args){//java绋嬪簭鐨勪富鍏ュ彛澶?
//鍒濆鍖栫殑鏂瑰紡鏋勯犱竴涓簩缁存暟缁?
double[][]data1=new double[][]{{1.0,2.0,3.0},{4.0,5.0,6.0},{7.0,8.0,9.0}};
double[][]data2=new double[3][3];//澹版槑涓涓簩缁存暟缁勶紝娌℃湁鍒濆鍖?
for(int i=0;i<3;i++){//for寰幆渚濇鍒濆鍖栦簩缁存暟缁?
for(int j=0;j<3;j++){
data2[i][j]=2*i+j;//杩涜璧嬪?
}
}
TextMatrix matrix1=new TextMatrix(data1);
TextMatrix matrix2=new TextMatrix(data2);
System.out.println("涓ょ粍浜岀淮鏁扮粍灞曠ず:");
matrix1.showData();//浜岀淮鏁扮粍灞曠ず
matrix2.showData();
System.out.println("鐭╅樀鍔犳硶杩愮畻缁撴灉锛?);
matrix1.add(matrix2).showData();//鏄剧ず鐭╅樀鍔犳硶杩愮畻缁撴灉
System.out.println("鐭╅樀鍑忔硶杩愮畻缁撴灉锛?);
matrix1.subtration(matrix2).showData();//鏄剧ず鐭╅樀鍑忔硶杩愮畻缁撴灉
System.out.println("鐭╅樀matrix1杞疆缁撴灉锛?);
matrix1.transposeMatrix().showData();//鐭╅樀杞疆鐨勭粨鏋?
}
}
上一篇:
TextMapClass.java
下一篇:
高中生2016外国励志名言精选