File size: 1,515 Bytes
aaa20ea
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
import numpy as np

# 读取文件内容
with open("rotation_matrix_300_round1_filter1_error_log.txt", "r") as file:
    lines = file.readlines()

# 初始化一个列表用于存储归一化后的矩阵
normalized_matrices = []

# 逐行处理文件中的矩阵
i = 0
while i < len(lines):
    # 查找每个错误信息行
    if lines[i].startswith("Error with rotation matrix:"):
        matrix = []
        i += 1  # 跳到矩阵数据的第一行
        # 收集矩阵数据,直到遇到分隔行
        while i < len(lines) and lines[i].strip() != "--------------------------------------------------":
            row = lines[i].strip().replace("[", "").replace("]", "")  # 清理矩阵行数据
            matrix.append([float(x) for x in row.split()])  # 转换为浮动数值
            i += 1
        matrix = np.array(matrix)  # 转换为 numpy 数组

        # 归一化操作:计算矩阵的 Frobenius 范数
        norm = np.linalg.norm(matrix)
        normalized_matrix = matrix / norm  # 归一化

        normalized_matrices.append(normalized_matrix)

    i += 1  # 继续处理下一个矩阵

# 将归一化后的矩阵保存到一个新文件
with open("normalized_rotation_matrix_log.txt", "w") as file:
    for norm_matrix in normalized_matrices:
        file.write("Normalized rotation matrix:\n")
        for row in norm_matrix:
            file.write(f"{row}\n")
        file.write("-" * 50 + "\n")

print("归一化后的矩阵已保存到 normalized_rotation_matrix_log.txt")