Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
123
返回列表 发新帖
楼主: suxiong

[已解决]代码提速问题!麻烦下(过程已详细补充清楚)

[复制链接]
发表于 2014-1-9 14:08 | 显示全部楼层
新的附件已经对检查结果进行了整理和输出。

耗时影响不大。

但发现精确计算后最短距离值的大小会有变动,导致排序不准确……
因此也用了比较排序进行重新整理。

12000.zip

594.5 KB, 下载次数: 2

回复

使用道具 举报

发表于 2014-1-9 14:10 | 显示全部楼层
新的附件已经对检查结果进行了整理和输出。

耗时影响不大。

但发现精确计算后最短距离值的大小会有变动,导致排序不准确……
因此也用了比较排序进行重新整理。

另外,增加了选择经度近似范围的参数(默认±0.02度)

可以扩大,或缩小,但不允许设置为0。
回复

使用道具 举报

发表于 2014-1-9 15:01 | 显示全部楼层    本楼为最佳答案   
如果增大经度近似范围参数到 0.1 (默认±0.02度)

计算速度会降低很多 (大约 3倍)

建议只对那些输出结果不理想的进行扩大检查范围的计算。



12000.zip

602.85 KB, 下载次数: 12

回复

使用道具 举报

 楼主| 发表于 2014-1-9 15:35 | 显示全部楼层
香川群子 发表于 2014-1-8 23:35
在高精度计算中,因为浮点计算的问题,居然还会造成数据类型溢出错误。呵呵。

后来想办法解决了。

谢谢你,我先看一下。
回复

使用道具 举报

 楼主| 发表于 2014-1-9 16:14 | 显示全部楼层
香川群子 发表于 2014-1-9 15:01
如果增大经度近似范围参数到 0.1 (默认±0.02度)

计算速度会降低很多 (大约 3倍)

你好,谢谢你了。但还有点问题。
不知道是不是我没有看懂。输出的结果为什么只有10个值呢?

我想的是A点每一个点位与B点所有点位计算距离,找一个距A点距离最近的B点点位(当然几个最好,当时我想找一个都那么久,找10个就没有敢想了);所以如果A点有12000个,那么输出结果就是A点12000个。B点也是12000个,并且有距离值。

我重新传了一个附件,sheet1为点位信息,计算后的结果在“结果”这个工作表,麻烦你看下呢。真是非常感谢你。

Snap1.jpg

Snap2.jpg
复件 ne.zip (41 KB, 下载次数: 2)
回复

使用道具 举报

发表于 2014-1-9 21:24 | 显示全部楼层
suxiong 发表于 2014-1-9 16:14
你好,谢谢你了。但还有点问题。
不知道是不是我没有看懂。输出的结果为什么只有10个值呢?

楼主笨蛋!

看了我的附件了吗?打开运行宏了么?

我给你的不是10个结果,而是12000x10=120000个结果了。比你需要的多十倍。

原因很简单:对于A组每一个点,B组中距离最短的点可能不止1个,可能是2个或3个……

因此我先计算得到最短距离的10个值,全部输出以后,让你自己来看有没有用。



回复

使用道具 举报

发表于 2014-1-9 21:39 | 显示全部楼层
23楼附件中仅设置为计算1000行……这个要在代码里面改。

这么简单的问题,我觉得你可以自己改。
回复

使用道具 举报

 楼主| 发表于 2014-1-9 22:10 | 显示全部楼层
香川群子 发表于 2014-1-9 21:39
23楼附件中仅设置为计算1000行……这个要在代码里面改。

这么简单的问题,我觉得你可以自己改。

23楼的为啥是输出的10000行,20列呢。我运行了,代码我也看了,但真没有看懂。好多变量啊。

你帮我改一下吧。好吗?

我看下在回味一下,这些东西。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-7 06:09 , Processed in 1.414343 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表