【发布时间】:2022-01-08 22:37:55
【问题描述】:
我正在寻找一种在 IDL 中生成对数间隔数组的方法。 在 L3 Harris Geospatial 网站上,我遇到了“arrgen”,并试图将其用于此目的。然而,
arrgen(1,215,/log)
返回错误:变量未定义:ARRGEN。
正确的做法是什么? 提前感谢您的帮助
【问题讨论】:
-
请提供足够的代码,以便其他人更好地理解或重现问题。
我正在寻找一种在 IDL 中生成对数间隔数组的方法。 在 L3 Harris Geospatial 网站上,我遇到了“arrgen”,并试图将其用于此目的。然而,
arrgen(1,215,/log)
返回错误:变量未定义:ARRGEN。
正确的做法是什么? 提前感谢您的帮助
【问题讨论】:
首先定义您喜欢的日志库的下限和上限。为简洁起见,我将使用 base $e$。
lowe = ALOG(low[0])
uppe = ALOG(upp[0])
其中low 和upp 是您(用户)定义的标量数值(例如,您的示例中的1 和215)。然后构造一个由n元素组成的等间距数组,如:
dinde = DINDGEN(n[0])*(uppe[0] - lowe[0])/(n[0] - 1L) + lowe[0]
其中n 是一个标量整数。现在转换回线性空间得到:
dind = EXP(dinde)
这将是一个对数间隔的数组。如果您想使用 base-10 日志,请将 ALOG 替换为 ALOG10。如果您需要另一个基数,则可以使用由以下给出的基数规则的对数变化:
logb x = logc x / logc b
【讨论】: