我正在尝试通过我的IDL程序运行大量数据,但是当我这样做时,我得到了无意义的结果。
如果我将输入分开然后分别将每个部分分别放到程序中,然后将输出拼接在一起就能正常工作。这导致认为代码中某处出现溢出问题,但到目前为止我还没有运气调试。
有没有办法可以更改IDL中的默认数据类型大小,这样如果我声明一个变量,如...
A = functionCall(blah,blah2)
它会将变量作为32位值而不是16位(默认值)启动?
我知道你可以通过
手动完成A = long(functionCall(blah,blah2))
我的代码是几千行,我宁愿不通过手动更改每个变量。
答案 0 :(得分:2)
如果您要做的只是默认为32位整数,则可以在代码中放置compile_opt语句。放
compile_opt defint32
在你的日常工作中。或者,
compile_opt idl2
这是defint32和strictarr的简写(强制使用方括号进行索引)。这将使IDL在通常使用16位整数的任何地方使用32位整数。
但是,我不确定这是如何解决您的大数据的问题。问题。您可能想要使用
help, /mem
检查你的内存使用情况。