Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.File;
- import java.io.FileNotFoundException;
- import java.util.ArrayList;
- import java.util.Scanner;
- import java.util.Vector;
- public class MatrixAdd {
- public static void main(String[] args) throws FileNotFoundException {
- Scanner scanner1 = new Scanner(new File("matrix1.csv"));
- Scanner scanner2 = new Scanner(new File("matrix2.csv"));
- Vector<Vector<Integer>> matrix1 = new Vector<Vector<Integer>>();
- Vector<Vector<Integer>> matrix2 = new Vector<Vector<Integer>>();
- init(scanner1, matrix1);
- init(scanner2, matrix2);
- if(matrix1.size() != matrix2.size() || matrix1.get(0).size() != matrix2.get(0).size()) {
- System.out.print("undefined");
- } else {
- Vector<Vector<Integer>> result = addTwoMatrix(matrix1, matrix2);
- if(checkIfSymmetric(result)) {
- System.out.print("true");
- } else {
- System.out.print("false");
- }
- }
- scanner1.close();
- }
- private static boolean checkIfSymmetric(Vector<Vector<Integer>> result) {
- Vector<Vector<Integer>> transposedResult = transposeMatrix(result);
- if(result.size() != transposedResult.size() || result.get(0).size() != transposedResult.get(0).size()) {
- return false;
- } else {
- for(int i = 0; i < result.size(); i++) {
- for(int j = 0; j < result.get(0).size(); j++) {
- if(result.get(i).get(j) != transposedResult.get(i).get(j)) {
- return false;
- }
- }
- }
- }
- return true;
- }
- private static Vector<Vector<Integer>> transposeMatrix(Vector<Vector<Integer>> result) {
- Vector<Vector<Integer>> transposedResult = new Vector<>();
- for(int i = 0; i < result.get(0).size(); i++) {
- Vector<Integer> row = new Vector<Integer>();
- for(int j = 0; j < result.size(); j++) { // 1 2 3 1 0
- row.add(result.get(j).get(i));
- }
- transposedResult.add(row);
- }
- return transposedResult;
- }
- private static Vector<Vector<Integer>> addTwoMatrix(Vector<Vector<Integer>> matrix1, Vector<Vector<Integer>> matrix2) {
- Vector<Vector<Integer>> result = new Vector<>();
- for(int i = 0; i < matrix1.size(); i++) {
- Vector<Integer> row = new Vector<Integer>();
- for(int j = 0; j < matrix1.get(i).size(); j++) {
- int val = matrix1.get(i).get(j) + matrix2.get(i).get(j);
- row.add(val);
- }
- result.add(row);
- }
- return result;
- }
- private static void init(Scanner scanner, Vector<Vector<Integer>> matrix) {
- int j = 0;
- while(scanner.hasNext()){
- Vector<Integer> row = new Vector<Integer>();
- String[] s = scanner.next().split(",");
- int i = 0;
- while(i < s.length) {
- row.add(Integer.parseInt(s[i]));
- i++;
- }
- matrix.add(row);
- j++;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement