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")