Idl programming language 如果输入太大,IDL程序将返回错误结果

Idl programming language 如果输入太大,IDL程序将返回错误结果,idl-programming-language,Idl Programming Language,我试图通过IDL程序运行大量数据,但当我这样做时,我得到的结果毫无意义 如果我分割输入,然后将每个部分分别交给程序,然后将输出缝合在一起,效果会很好。这导致人们认为代码中的某个地方出现了溢出问题,但到目前为止,我还没有成功地调试它 是否有一种方法可以更改IDL中的默认数据类型大小,以便在声明变量(如 A = functionCall(blah,blah2) 它将以32位值而不是16位值(默认值)启动变量 我知道你可以通过 A = long(functionCall(blah,blah2))

我试图通过IDL程序运行大量数据,但当我这样做时,我得到的结果毫无意义

如果我分割输入,然后将每个部分分别交给程序,然后将输出缝合在一起,效果会很好。这导致人们认为代码中的某个地方出现了溢出问题,但到目前为止,我还没有成功地调试它

是否有一种方法可以更改IDL中的默认数据类型大小,以便在声明变量(如

A = functionCall(blah,blah2)
它将以32位值而不是16位值(默认值)启动变量

我知道你可以通过

A = long(functionCall(blah,blah2))

我的代码只有几千行,我不想对每个变量都进行手动更改。

如果您只想默认为32位整数,那么可以在代码中放入compile\u opt语句。放

compile_opt defint32
在你的日常生活中。或者

compile_opt idl2
这是Definit32和strictarr的缩写(强制使用方括号进行索引)。这将使IDL在通常使用16位整数的地方使用32位整数

但是,我不确定这如何解决您的“大数据”问题。您可能想使用

help, /mem

检查您的内存使用情况。

那么您是否有内存问题,或者
整数
长整数
变量之间存在差异?如果是后者,则只需将以下内容添加到相关位置的代码中:
*1L
。这将把东西转换成长整数。此外,IDL默认为64位,除非您运行的版本早于6.0。