Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class Matrix {
- private int mat[][], x, y;
- Matrix() {
- mat = new int[0][0];
- x = 0;
- y = 0;
- }
- Matrix(int x) {
- mat = new int[x][x];
- for (int i = 0; i < x; i++) mat[i][i] = 1;
- this.x = x;
- y = x;
- }
- Matrix(int x, int y) {
- mat = new int[y][x];
- this.x = x;
- this.y = y;
- }
- void setElementAt(int x, int y, int data) {
- mat[x][y] = data;
- }
- int getElementAt(int x, int y) {
- return mat[x][y];
- }
- int getRow() {
- return x;
- }
- int getColumn() {
- return y;
- }
- void print() {
- for (int i = 0; i < y; i++) {
- for (int j = 0; j < x; j++) {
- System.out.print(mat[i][j] + " ");
- }
- System.out.println();
- }
- }
- int[][] toIntArray() {
- return mat;
- }
- void setSize(int m, int n) {
- int[][] temp = new int[n][m];
- for (int i = 0; i < Math.min(n, y); i++) System.arraycopy(mat[i], 0, temp[i], 0, Math.min(x, m));
- mat = temp;
- x = m;
- y = n;
- }
- void transpose() {
- int matT[][] = new int[x][y];
- for (int i = 0; i < y; i++) for (int j = 0; j < x; j++) matT[j][i] = mat[i][j];
- mat = matT;
- int temp = x;
- x = y;
- y = temp;
- }
- void toIdentity(int x) {
- mat = new int[x][x];
- for (int i = 0; i < x; i++) mat[i][i] = 1;
- this.x = x;
- y = x;
- }
- void add(Matrix m) {
- for (int i = 0; i < y; i++) for (int j = 0; j < x; j++) {
- try {
- mat[i][j] += m.getElementAt(i, j);
- }
- catch (Exception e) {
- throw new IllegalArgumentException("Matrices size mismatch");
- }
- }
- }
- void add(Matrix m, Matrix n) {
- Matrix temp = new Matrix(m.getRow(), m.getColumn());
- for (int i = 0; i < y; i++) for (int j = 0; j < x; j++) {
- try {
- temp.setElementAt(i, j, m.getElementAt(i, j) + n.getElementAt(i, j));
- }
- catch (Exception e) {
- throw new IllegalArgumentException("Matrices size mismatch");
- }
- }
- mat = temp.toIntArray();
- x = m.getRow();
- y = m.getColumn();
- }
- void subtract(Matrix m) {
- for (int i = 0; i < y; i++) for (int j = 0; j < x; j++) {
- try {
- mat[i][j] -= m.getElementAt(i, j);
- }
- catch (Exception e) {
- throw new IllegalArgumentException("Matrices size mismatch");
- }
- }
- }
- void subtract(Matrix m, Matrix n) {
- Matrix temp = new Matrix(m.getRow(), m.getColumn());
- for (int i = 0; i < y; i++) for (int j = 0; j < x; j++) {
- try {
- temp.setElementAt(i, j, m.getElementAt(i, j) - n.getElementAt(i, j));
- }
- catch (Exception e) {
- throw new IllegalArgumentException("Matrices size mismatch");
- }
- }
- mat = temp.toIntArray();
- x = m.getRow();
- y = m.getColumn();
- }
- void multiply(Matrix m) {
- for (int i = 0; i < y; i++) for (int j = 0; j < x; j++) {
- int jumlah = 0;
- for (int k = 0; k < x; k++) {
- try {
- jumlah += mat[i][k] * m.getElementAt(k, j);
- }
- catch (Exception e) {
- throw new IllegalArgumentException("Matrices size mismatch");
- }
- }
- mat[i][j] = jumlah;
- }
- }
- void multiply(Matrix m, Matrix n) {
- for (int i = 0; i < y; i++) for (int j = 0; j < x; j++) {
- int jumlah = 0;
- for (int k = 0; k < x; k++) {
- try {
- jumlah += m.getElementAt(i, k) * n.getElementAt(k, j);
- }
- catch (Exception e) {
- throw new IllegalArgumentException("Matrices size mismatch");
- }
- }
- mat[i][j] = jumlah;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement