我想构建一个应用程序,使用陀螺+加速度计计算iPhone(非长距离)的准确行进距离.这里不需要GPS.
我该如何处理这个问题?
是否可以用手机摄像头测量到物体的距离?
我的意思是,在我的应用程序中,我启动相机,面向相机对象(让我们说房子),然后按下按钮,它计算距离,并在屏幕上显示我.
如果有可能我可以找到一些教程或相关信息?
我有分类文本的语料库.从这些我创建矢量.每个向量对应一个文档.矢量分量是本文档中的字权重,计算为TFIDF值.接下来,我构建一个模型,其中每个类都由一个向量表示.模型具有与语料库中的类一样多的向量.模型矢量的分量被计算为取自该类中矢量的所有分量值的平均值.对于未分类的矢量,我通过计算这些矢量之间的余弦来确定与模型矢量的相似性.
问题:
1)我可以使用未分类和模型向量之间的欧几里德距离来计算它们的相似性吗?
2)为什么欧几里德距离不能用作相似度量而不是两个矢量之间的角度余弦,反之亦然?
谢谢!
您能否推荐Google Distance Matrix API的替代品?这项服务很棒,但有一些严重的配额限制,使用条款也很艰难.
谢谢!
我想知道是否有一个内置于Python中的函数可以确定两个有理数之间的距离,但我没有告诉它哪个数字更大.例如
>>>distance(6,3)
3
>>>distance(3,6)
3
Run Code Online (Sandbox Code Playgroud)
显然我可以写一个简单的定义来计算哪个更大然后只做一个简单的减法:
def distance(x, y):
if x >= y:
result = x - y
else:
result = y - x
return result
Run Code Online (Sandbox Code Playgroud)
但我宁愿不必调用这样的自定义函数.根据我有限的经验,我经常发现Python有一个内置函数或一个模块,它可以完全按照您的需要执行,并且比代码更快.希望有人能告诉我有一个内置功能可以做到这一点.
我正在使用Python编写拼写检查程序.我有一个有效单词列表(字典),我需要从这个字典中输出一个单词列表,它与给定的无效单词的编辑距离为2.
我知道我需要从无效单词生成一个编辑距离为1的列表开始(然后再对所有生成的单词再次运行).我有三个方法,插入(...),删除(...)和更改(...)应输出编辑距离为1的单词列表,其中插入输出所有有效单词多于一个字母的单词给定的单词,删除输出所有有效单词少一个字母,并更改输出所有有效单词和一个不同的字母.
我查了很多地方,但我似乎无法找到描述这个过程的算法.我提出的所有想法都涉及多次遍历字典列表,这将非常耗时.如果有人能提供一些见解,我将非常感激.
我有2个列表(list1,list2),其中包含各种位置的纬度/经度.一个list(list2)具有没有的位置名称list1.
我想要list1中每个点的近似位置.所以我想指出一点list1,试着寻找最近的点,list2然后选择那个地方.我重申每一点list1.它还需要距离(以米为单位)和点的索引(in list1),因此我可以围绕它构建一些业务规则 - 基本上这些是应该添加到list1(near_dist,indx)的2个新cols .
我正在使用该gdist功能,但我无法使用它来处理数据帧输入.
示例输入列表:
list1 <- data.frame(longitude = c(80.15998, 72.89125, 77.65032, 77.60599,
72.88120, 76.65460, 72.88232, 77.49186,
72.82228, 72.88871),
latitude = c(12.90524, 19.08120, 12.97238, 12.90927,
19.08225, 12.81447, 19.08241, 13.00984,
18.99347, 19.07990))
list2 <- data.frame(longitude = c(72.89537, 77.65094, 73.95325, 72.96746,
77.65058, 77.66715, 77.64214, 77.58415,
77.76180, 76.65460),
latitude = c(19.07726, 13.03902, 18.50330, 19.16764,
12.90871, 13.01693, 13.00954, …Run Code Online (Sandbox Code Playgroud) 这是一个挑战问题,而不是我迫切需要的东西,所以不要整天花在它们身上.
我在2000年左右建立了一个约会网站(早已不复存在),其中一个挑战是计算用户之间的距离,以便我们可以在半径X英里内展示您的"匹配".为了说明问题,给定以下数据库模式(粗略地):
USER TABLE UserId UserName ZipCode
ZIPCODE表ZipCode纬度经度
USER和ZIPCODE加入USER.ZipCode = ZIPCODE.ZipCode.
您将采取什么方法来回答以下问题:在给定用户的邮政编码的X英里范围内的其他用户使用的邮政编码.
我们使用了2000年人口普查数据,其中包含邮政编码表及其近似的经纬度.
我们还使用Haversine公式来计算球体上任意两点之间的距离......非常简单的数学.
至少对我们来说,这个问题是我们19岁的大学生,真正成为了如何有效地计算和/存储从所有成员到所有其他成员的距离.一种方法(我们使用的方法)是导入所有数据并计算从每个邮政编码到每个其他邮政编码的距离.然后,您将存储并索引结果.就像是:
SELECT User.UserId
FROM ZipCode AS MyZipCode
INNER JOIN ZipDistance ON MyZipCode.ZipCode = ZipDistance.MyZipCode
INNER JOIN ZipCode AS TheirZipCode ON ZipDistance.OtherZipCode = TheirZipCode.ZipCode
INNER JOIN User AS User ON TheirZipCode.ZipCode = User.ZipCode
WHERE ( MyZipCode.ZipCode = 75044 )
AND ( ZipDistance.Distance < 50 )
Run Code Online (Sandbox Code Playgroud)
当然,问题是ZipDistance表中会有很多行.它并非完全不可行,但它确实很大.此外,它需要对整个数据集进行完整的预处理,这也不是无法管理的,但不一定是可取的.
无论如何,我想知道你们中的一些大师会对这样的事情采取什么方法.此外,我认为这是程序员不时要解决的常见问题,特别是如果您考虑的算法类似的问题.我对一个彻底的解决方案很感兴趣,其中至少包括所有部分的HINTS,以便快速有效地完成这项工作.谢谢!
我正在寻找一种算法用于我正在制作的赛车游戏.地图/关卡/轨道是随机生成的,所以我需要找到两个位置,即开始和目标,它们利用了大部分地图.
关于距离的计算,它不应该是缺乏更好词的"鸟道".如果它们之间存在墙(或其他阻挡区域),则A和B之间的路径应该更长.
我不确定从哪里开始,非常欢迎评论,并且建议的解决方案在伪代码中是首选.
编辑:对.在查看了gs的代码后,我又给了它一个镜头.我这次用C++写的,而不是python.但是,即使在阅读了Dijkstras算法,洪水填充和Hosam Alys解决方案后,我也没有发现任何重要的区别.我的代码仍然有效,但没有你想要运行的那么快.完整的消息来源是牧场.唯一有趣的线(我猜)是第78-118行的Dijkstra变体.
但速度不是这里的主要问题.如果有人能够指出算法中的差异,我真的很感激帮助.
使用纬度和经度值(点A),我试图计算另一个点B,X米距离点A的0弧度.然后显示点B纬度和经度值.
示例(伪代码):
PointA_Lat = x.xxxx;
PointA_Lng = x.xxxx;
Distance = 3; //Meters
bearing = 0; //radians
new_PointB = PointA-Distance;
Run Code Online (Sandbox Code Playgroud)
我能够计算出两点之间的距离,但我想知道的是知道距离和方位的第二点.
最好是PHP或Javascript.
谢谢