Создание матрицы из текстового файла в python и обработка данных - PullRequest
0 голосов
/ 29 апреля 2020

У меня есть входной файл, в котором есть данные для создания матрицы ». Я должен создать 3 матрицы, а затем проверить 3-ю матрицу, прочитав данные из текстового файла. И продолжайте делать это по всему файлу.

0404 # the rows= 04 cols = 04
24F2
4AB6
2030
A7F0 #data ends for matrix 1
4851 #data starts for matrix 2
....

..

0808 #data ends for matrix 2
4AB6 #data starts for matrix 3, to be verified in the script with the multiplication result, matrix3= 
#Matrix 1 * matrix 2
2030
A7F0
4851 
....

2030 #data ends for matrix 3
0404 #rows and columns details for the next loop

Первая строка текстового файла - это строки и подробности столбца матрицы, первая матрица, которую нужно сформировать (строки x 1), взяв данные из строки 2 в строку 5. Далее следует вторая матрица (строки 4x столбцов 4). А 3-я матрица - это умножение 1-го и 2-го, вывод которых я должен проверить, используя строки, следующие за следующим.

Я уже написал код для извлечения строк и столбцов. и сохраните остальные строки в списке. Я не уверен, как l oop файл и создать матрицы. Есть ли кто-нибудь, кто может направить меня с логи c. вот мой код:

import os
import sys
from os import path
import numpy as np

folder_path = os.path.dirname(os.path.abspath(__file__))
new_file = os.path.join(folder_path, 'OutputLines.txt')
new_file = open("OutputMatrix.txt", "a")
new_file.truncate(0)

def open_file(filename):
    try:
        rows = 0
        cols = 0
        width = 0
        bit_file = open(filename, 'rb')
        values = []
        hex_values = []
        for line in bit_file:
            values.append(line.strip("\n"))

        values = ["0x" + hh for hh in values]

        width = values.pop(0)
        print width
        width = int(width,16)
        print("\n\n")
        print width
        rows = (int(width) & 0xffff)
        cols = (int(width) >> 16)
        print rows
        print cols

##        for hh in values:
##            hex_values.append(int(hh,16))

        x = np.array(values)
        x = np.squeeze(x)
        x = x.reshape(8,8)
        print x

        #print hex_values 
        new_file.close() 
        file(filename).close()
    except Exception,e:
        print str(e)
        exit(1)

if __name__ == '__main__':
    name = sys.argv[1]
    filename = sys.argv[1]
    #print filename
    open_file(filename)
...