缩放数组的各个元素

时间:2016-05-31 23:44:54

标签: openmdao

我一直在使用缩放器变量来缩放作为数组的设计变量。但是,我想以不同于其他元素的方式扩展其中一个元素。但是当我将一个数组输入到scaler变量中时,我得到以下错误:

  File "/usr/local/lib/python2.7/site-packages/openmdao/core/problem.py", line 1642, in _calc_gradient_ln_solver
Traceback (most recent call last):
    J[item][param][:, i] *= in_scale[param]
ValueError: non-broadcastable output operand with shape (1,) doesn't match the broadcast shape (48,) 

是否可以将数组添加到缩放器?或者是否有更好的方法可以单独扩展数组的各个元素而不是手动扩展?

1 个答案:

答案 0 :(得分:1)

看起来你正在尝试扩展48个元素的数组,但是你提供了一个元素的数组。我相信你的缩放器需要是标量(这同样会影响整个数组)或48个元素的数组。

例如,假设scales = np.ones(48) scales[0] = 2.0 driver.add_desvar('foo', lower=-10, upper=10, scaler=scales) 是48个元素的数组。

{{1}}