LHS 方法提供 0 到 1 之间的采样值。例如,如果我想设置界限,一维值应该是 -0 到 15?我怎样才能在 pyDOE python 中做到这一点?
from pyDOE import *
n = 2
samples = 50
d = lhs(n, samples, criterion='center')
x1 = d[:,0]
x2 = d[:,1]
我的 x1 值应该在 -10 到 10 之间,x2 应该在 1 到 20 之间。
我想到了
import pyDOE as pyd
bounds = np.array([[-10,10],[1,20]]) #[Bounds]
# print(xbounds)
X = pyd.lhs(2, 100, criterion='centermaximin')
X[:,0] = (X[:,0]*(bounds[0,1]-bounds[0,0])+bounds[0,0])
X[:,1] = (X[:,1]*(bounds[1,1]-bounds[1,0])+bounds[1,0])
将 x1(或 x2)中的每个数据点乘以您的边界范围,例如 10 - (-10) 即。20,并将其添加到下限。
x1_new = [None for i in range(len(x1))]
for i,j in enumerate(x1):
x1_new[i] = -10 + 20*j
... 我认为?