如何在Matlab中以矢量化方式从TSP距离矩阵计算所有行程的长度

问题描述 投票:0回答:1

这里是初始代码:

n = 5;
D=[0,5,4,3,7;
   5,0,4,6,3;
   4,4,0,5,8;
   3,6,5,0,6;
   7,3,8,6,0];
trips = nchoosek(1:n,2);

现在,我想计算每个行程的长度。这很容易以幼稚的方式完成。

s= zeros(length(trips),1);
for t=1:length(trips)
    s(i) = D(trips(t,1),trips(t,2));
end

可以以矢量化方式完成此操作吗?还是其他更快的方法?

matlab combinatorics discrete-mathematics
1个回答
0
投票

是。通过使用sub2ind

s = D(sub2ind(size(D),trips(:,1), trips(:,2)))
© www.soinside.com 2019 - 2024. All rights reserved.