我有一个单列数组,我想按降序排序。数组的值从0到大约10^14不等。
sorted = sort(A,'descend')
试着看看十大最大值,我发现
sorted(1:10)
给我
1.0e+14 *
5.1093
0.0000
0.0000
0.0000
等等。--显示前几个,大型条目告诉我只有一个非零元素,这不是真的。但是,如果我跳过前几个条目,它们远大于数组元素的其余部分,我将得到
排序(8:10)=
2.9754
2.4182
2.0799
为什么显示这些前几个大数组元素会导致所有其他元素显示为零?
发布于 2012-05-27 20:29:01
列表中的第一个数字是一个比例因子,它将整个数组相乘。由于元素的大小不同,您需要使用格式设置。试一试
format long或
format long e看到更好的表示法
发布于 2012-05-27 20:28:13
您可能会发现sprintf或num2str对于打印任意精度的数字更为有用。
相关Matlab文档:
发布于 2012-05-27 20:24:59
它们被显示为零,因为与第一个元素相比,它们基本上是零(也就是说,它们比10^14小得多)。但即使它们被显示为零,它们也不是零。尝试输入sorted(3):结果不应该是零。(编辑:您已经展示了上面的内容)。
这基本上是一个精确的问题。输入format long也可以使这一点更加清晰。
https://stackoverflow.com/questions/10776924
复制相似问题