0

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 之间。

4

2 回答 2

0

我想到了

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])
于 2021-04-09T05:36:32.923 回答
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

... 我认为?

于 2021-04-08T13:35:29.003 回答