Matlab:生成N个点的距离矩阵

时间:2016-06-19 07:20:06

标签: algorithm matlab graph

我正在尝试有效地生成大约200.000个2D点的距离矩阵,但不知何故我感觉我使用pdist for循环的琐碎方法效率不高 - 我的想法是手动创建一个包含距离的下三角矩阵。

最后,目标是使用graphminspantree从2D点数据生成最小生成树。有没有推荐的方法来解决这个问题?也许甚至是一个我根本找不到的内置函数?任何建议将不胜感激。

更新

根据要求,这是一个最小的工作示例

G = [2,3;3,4;4,5];
D = zeros(length(G), length(G));
for col = 1:length(G)
    for row = (col+1):length(G)
        D(row, col) = pdist(cat(1, G(col,:), G(row,:)), 'euclidean');
    end
end
disp(D);

在其他语言中,有方法可以即时生成所需的数字;它被称为流编程。例如。 Sage或Scala具有即时生成列表的方法。 Matlab中有类似的东西吗?我是Matlab的新手。

例如,您可以根据需要在Scala中生成如下的斐波纳契序列:

val fibs: Stream[Int] = 0 #:: fibs.scanLeft(1)(_ + _)

0 个答案:

没有答案