从系统数组到ilnumerics数组的隐式转换不保留双精度

时间:2014-09-17 10:21:46

标签: math scientific-computing ilnumerics

当我将一个双精度系统数组分配给ilnumerics double数组时,这些值四舍五入为最接近的整数。这种情况特别适用于大型阵列。

在ILnumerics中是否有任何方法可以指定舍入应该发生多少小数?

以下屏幕截图显示了该问题。 Sample_pulsedata是长度为1860的双数组,我将其分配给sample_ydata。

enter image description here

1 个答案:

答案 0 :(得分:1)

元素并非真正圆润。效果更多来自Visual Studios数据提示中元素的显示方式。 ILNumerics试图找到一个通用的比例因子,它允许显示数组对齐中的所有元素。

在您的示例中 - 可能 - 在较高的索引处存在较大的值,这些值当前未显示(向下滚动以便找到它们)。这些元素导致比例因子为1/10 ^ 4。这在第一行指示,索引[0]:'(:; :) 1e + 004'。因此,32.57必须四舍五入到33才能适合小数点后的4位数。 ' 4'在ILNumerics中是一个固定值,不容易改变。

当然,数组元素的实际值不受影响。您可以使用Watch窗口仅显示数组中有趣的部分,而不会产生舍入效果:

sample_ydata["0:13"]

或者,更好的是,使用ILNumerics Array Visualizer以图形方式显示您的数据。这不仅可以很好地概述整个阵列,还可以防止您遇到的这些假象。

相关问题