n11_list = np.array([0, 55, 60, 65, 70, 75, 80, 85, 90]) # 共9个n11值
a_list = np.array([0, 18, 22, 26, 30, 34]) # 共6个a值(单位:mm)
# 表1中的q11数据(按行排列,每行对应一个n11,每列对应一个a)
q11_table = np.array([
[0.000, 0.687, 0.815, 0.934, 1.189, 1.106], # n11=0
[0.000, 0.646, 0.792, 0.886, 1.006, 1.075], # n11=55
[0.000, 0.642, 0.772, 0.900, 0.990, 1.073], # n11=60
[0.000, 0.628, 0.764, 0.895, 0.988, 1.075], # n11=65
[0.000, 0.617, 0.753, 0.897, 0.992, 1.075], # n11=70
[0.000, 0.592, 0.733, 0.868, 0.988, 1.085], # n11=75
[0.000, 0.582, 0.720, 0.859, 0.974, 1.089], # n11=80
[0.000, 0.565, 0.710, 0.846, 0.969, 1.071], # n11=85
[0.000, 0.549, 0.694, 0.837, 0.965, 1.060], # n11=90
])
# 构建输入矩阵p和输出向量t
p = []
t = []
for i in range(len(n11_list)):
n11 = n11_list[i]
# 输入矩阵p: 第一列是a值,第二列是当前n11重复6次
a_values = np.tile(a_list, (1)).reshape(-1, 1) # 转换为列向量
n11_values = np.full((len(a_list), 1), n11)
p_block = np.hstack((a_values, n11_values))
p.append(p_block)
# 输出向量t: 按行展开q11_table
t.append(q11_table[i, :])
p = np.vstack(p).T # 转换为(2, 54)的输入矩阵
t = np.hstack(t).reshape(-1, 1) # 转换为(54, 1)的输出向量
# 数据归一化(建议步骤)
from sklearn.preprocessing import StandardScaler
scaler_p = StandardScaler()
p_scaled = scaler_p.fit_transform(p.T).T # 输入需要转置为(54, 2)再归一化
scaler_t = StandardScaler()
t_scaled = scaler_t.fit_transform(t)是什么意思