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