Exemplo n.º 1
0
    def mx_rank(self):
        print("\n Operace: hodnost matice:")

        print("\nZadání matice:")
        print("¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯")
        mx = self.__read_mx_data(self)

        MatrixConsolePrinter.print_default(mx)
        print("~(rank(A))~")

        self.__current_operation = MatrixREF(mx)
        mx_res = self.__current_operation.calculate_ref()
        self.operation_result = self.__current_operation.rank
        print(self.operation_result)
Exemplo n.º 2
0
    def mx_determinant(self):
        print("\n Operace výpočet determinantu:")

        print("\nZadání matice:")
        print("¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯")
        mx = self.__read_mx_data(self)

        MatrixConsolePrinter.print_default(mx)
        print("~(det(A))~")

        self.__current_operation = MatrixDeterminant(mx)
        self.operation_result = self.__current_operation.calculate_determinant(
        )

        print(self.operation_result)
Exemplo n.º 3
0
    def mx_rref(self):
        print("\nOperace: RREF:")

        print("\nZadání matice:")
        print("¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯")
        mx = self.__read_mx_data(self)

        MatrixConsolePrinter.print_default(mx)
        print("~(RREF)~")

        print(" - " * (mx.m * 2))

        self.__current_operation = MatrixRREF(mx)
        self.operation_result = self.__current_operation.calculate_rref()
        MatrixConsolePrinter.print_default(self.operation_result)
Exemplo n.º 4
0
    def mx_transpose(self):
        print("\nOperace: Transpozice:")

        print("\nZadání matice:")
        print("¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯")
        mx = self.__read_mx_data(self)

        MatrixConsolePrinter.print_default(mx)
        print("~(A^(T))~")
        print(" - " * (mx.m * 2))

        self.__current_operation = MatrixTransposition(mx)
        self.operation_result = self.__current_operation.calculate_transpose()

        MatrixConsolePrinter.print_default(self.operation_result)
Exemplo n.º 5
0
    def read_matrix_user_input(self, mx):
        ctr = 0

        while ctr < mx.m:
            continue_read_row = True

            # Čtení řádku
            while(continue_read_row):
                input_row = input()
                parsed_data_arr = self.__try_parse_matrix_row_input(input_row)
                if(parsed_data_arr and len(parsed_data_arr) == mx.n):
                    mx.data[ctr] = parsed_data_arr
                    continue_read_row = False
                else:
                    print("Neplatně zadaný řádek matice, zkuste to znovu: ")
                    if(ctr > 0):
                        matrix_printer.print_simple(mx)
            ctr += 1
Exemplo n.º 6
0
    def mx_inverse(self):

        print("\nOperace: určení inverzní matice:")

        print("\nZadání matice:")
        print("¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯")
        mx = self.__read_mx_data(self)

        MatrixConsolePrinter.print_default(mx)
        print("~(A^(-1))~")

        print(" - " * (mx.m * 2))

        self.__current_operation = MatrixInversion(mx)
        self.operation_result = self.__current_operation.calculate_inversion_of_matrix(
        )

        if self.__current_operation.inversion_state:
            MatrixConsolePrinter.print_default(self.operation_result)
Exemplo n.º 7
0
    def mx_scalar_multiply(self):

        print("\nOperace násobení skalárem:")

        print("\nZadání matice:")
        print("¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯")

        mx = self.__read_mx_data(self)

        print("Zadejte skalár:")
        scalar = self.input_reader.read_scalar()

        MatrixConsolePrinter.print_default(mx)
        print("*(", scalar, ")", sep="")

        print(" - " * (mx.m * 2))
        self.__current_operation = MatrixScalarMultiplication(mx, scalar)
        self.operation_result = self.__current_operation.calculate_scalar_multiplication(
        )
        MatrixConsolePrinter.print_default(self.operation_result)
Exemplo n.º 8
0
    def __write_data_to_file(self, data_to_print, path_to_file):
        try:
            data_string = ''
            if type(data_to_print) is Matrix:
                data_string = MatrixConsolePrinter.print_simple(data_to_print, get = True)
            else:
                data_string = str(data_to_print)

            with open(path_to_file, 'w') as file:
                file.write(data_string)
        except:
            print('Při zápisu souboru došlo k chybě.')
Exemplo n.º 9
0
    def mx_add(self):
        #1)
        print("\nOperace sčítání:")
        #2)
        print("\nZadání 1. matice:")
        print("¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯")

        mx1 = self.__read_mx_data(self)

        self.dims_check = lambda sec_mx_dims: Helpers.invalid_dims_addition(
            sec_mx_dims, mx1)

        print("\nZadání 2. matice:")
        print("¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯")

        mx2 = self.__read_mx_data(self)

        MatrixConsolePrinter.print_default(mx1)
        print("(+)")
        MatrixConsolePrinter.print_default(mx2)

        print(" - " * (mx2.m * 2))
        self.__current_operation = MatrixAddition(mx1, mx2)
        self.operation_result = self.__current_operation.calculate_sum()
        MatrixConsolePrinter.print_default(self.operation_result)
Exemplo n.º 10
0
    def mx_multiply(self):

        print("\nOperace: Maticové Násobení:")

        print("\nZadání 1. matice:")
        print("¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯")
        mx1 = self.__read_mx_data(self)

        self.dims_check = lambda sec_mx_dims: Helpers.invalid_dims_multiplication(
            sec_mx_dims, mx1)

        print("\nZadání 2. matice:")
        print("¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯")

        mx2 = self.__read_mx_data(self)

        MatrixConsolePrinter.print_default(mx1)
        print("~(*)~")
        MatrixConsolePrinter.print_default(mx2)

        print(" - " * (mx2.m * 2))
        self.__current_operation = MatrixMultiplication(mx1, mx2)
        self.operation_result = self.__current_operation.calculate_multiplication(
        )
        MatrixConsolePrinter.print_default(self.operation_result)