测试类:
package matrix;
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
long_weight m = new long_weight();
m.get_all();
long_weight m1 = new long_weight(3, 5);
m1.get_all();
System.out.println();
System.out.println("改变矩阵中的值之后为:");
m1.set_number(2, 2, 7);// 改变矩阵中某一个元素的值
m1.get_all();
System.out.println();
long_weight m2 = new long_weight(2, 2);
m2.set_number(0, 0, 1);
m2.set_number(0, 1, 1);
m2.set_number(1, 0, 2);
m2.set_number(1, 1, 0);
System.out.println("修改后矩阵的值为:");
m2.get_all();
System.out.println();
long_weight m3 = new long_weight(2, 3);
m3.set_number(0, 0, 0);
m3.set_number(0, 1, 2);
m3.set_number(0, 2, 3);
m3.set_number(1, 0, 1);
m3.set_number(1, 1, 1);
m3.set_number(1, 2, 2);
System.out.println("修改后矩阵的值为:");
m3.get_all();
System.out.println();
long_weight m5 = new long_weight(2, 2);
m5.set_number(0, 0, 1);
m5.set_number(0, 1, 1);
m5.set_number(1, 0, 2);
m5.set_number(1, 1, 0);
long_weight m4 = long_weight.add(m2, m5);
System.out.println("两个矩阵相加后矩阵的值为:");
m4.get_all();
System.out.println();
long_weight m6 = long_weight.multiplication(m2, m3);
System.out.println("两个矩阵相乘后矩阵的值为:");
m6.get_all();
System.out.println();
System.out.println("矩阵两个元素位置交换后为:");
m5.change(0, 1, 1, 0);
m5.get_all();
}
}
矩形类:
package matrix;
class long_weight {
int line, column;
int[][] a;
long_weight() {
line = 0;
column = 0;
}
long_weight(int line, int column) {
this.line = line;
this.column = column;
int i, j;
a = new int[line][column];
for (i = 0; i < line; i++)
for (j = 0; j < column; j++)
// 把矩阵元素初始化为零
a[i][j] = 0;
}
// 位置变换
void change(int line, int column, int change1, int change2) {
int change;
change = a[line][column];
a[line][column] = a[change1][change2];
a[change1][change2] = change;
}
// 给任意元素置值
void set_number(int line, int column, int number) {
a[line][column] = number;
}
// 得到所有的矩阵元素
void get_all() {
if (line == 0 && column == 0) {
System.out.println("该矩阵不存在!");
} else {
for (int i = 0; i < line; i++) {
for (int j = 0; j < column; j++)
System.out.print(a[i][j] + " ");
System.out.println();
}
}
}
// 矩阵元素相加
static long_weight add(long_weight s, long_weight a) {
long_weight copy = new long_weight(s.line, s.column);
for (int i = 0; i < s.line; i++)
for (int j = 0; j < s.column; j++)
copy.a[i][j] = s.a[i][j] + a.a[i][j];
return copy;
}
// 矩阵元素相乘
static long_weight multiplication(long_weight s, long_weight b) {
int sum = 0;
if (s.column != b.line) {
System.out.println("因为a数组与b数组不同,所以不能相乘!");
// System.out.println("因为a数组第"+i+"行与b数组第i行元素个数不同,所以不能相乘!");
return null;
}
// 2.得到C矩阵的行数和列数,以产生C矩阵
long_weight c = new long_weight(s.line, b.column);
// 3.输出结果矩阵C的值
System.out.println("按二维方式输出C矩阵:");
for (int i = 0; i < s.line; ++i) {
for (int j = 0; j < b.column; ++j) {
sum = 0;
for (int m = 0; m < s.column; ++m) {
// for(int k = 0;m <a[0].length;++m)
sum = sum + s.a[i][m] * b.a[m][j];
// System.out.print(c[i][j]+" ");
}
c.a[i][j] = sum;
System.out.print(c.a[i][j] + " ");
}
System.out.println();
}
System.out.println();
return c;
}
}
运行结果: