function adjacencyMatrix = calculateDistanceMatrix(positions) % 计算任意两个城市之间的直线距离,返回加权邻接矩阵 % 输入:positions - 包含城市坐标的矩阵 (n行3列) % 输出:adjacencyMatrix - n×n的加权邻接矩阵 % 获取城市数量 numCities = size(positions, 1); % 初始化邻接矩阵 adjacencyMatrix = zeros(numCities, numCities); % 计算每对城市之间的欧几里得距离 for i = 1:numCities for j = 1:numCities if i ~= j % 计算欧几里得距离 dx = positions(i, 2) - positions(j, 2); dy = positions(i, 3) - positions(j, 3); adjacencyMatrix(i, j) = sqrt(dx^2 + dy^2); end end end end