У меня есть входной файл, в котором есть данные для создания матрицы ». Я должен создать 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)