You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Julia中使用map计算元组与向量内各元组的欧氏距离?

问题原因及解决方法

你的代码只返回2个结果,是因为map函数会并行遍历传入的所有可迭代对象,当其中一个迭代对象耗尽时就停止计算。你传入的(3,3)是长度为2的元组,而tups是包含3个元素的向量,所以map仅处理前2组配对,得到2个结果。

下面是两种正确的实现方式:

方法一:直接在匿名函数中使用固定目标元组

这种方式最简洁,让map只遍历tups,每个元素都和固定的(3,3)计算欧氏距离:

tups = [
         (1, 3),
         (11, 2),
         (0, 1)
       ];

map(x -> √(sum((x .- (3, 3)).^2)), tups)

执行后会返回包含3个结果的向量:

3-element Vector{Float64}:
 2.0
 8.06225774829855
 3.605551275463989

方法二:重复目标元组以匹配tups的长度

如果你坚持使用双参数的匿名函数,可以用Iterators.repeat把(3,3)重复成和tups长度一致的迭代器,确保两个可迭代对象长度匹配:

using Iterators

tups = [
         (1, 3),
         (11, 2),
         (0, 1)
       ];

map((x, y) -> √(sum((x.-y).^2)), tups, Iterators.repeat((3,3), length(tups)))

这种方式同样会得到3个正确的距离结果。

内容的提问来源于stack exchange,提问作者Shayan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 16:20:33