2
我想构建一个矩形矩阵。让我们假设我们有这个矩阵称为节点构建矩阵从另一个矩阵开始
1 4.3434 3.4565
2 6.2234 5.1234
3 10.4332 2.3243
4 7.36543 1.1434
其中列2和3代表节点的位置x及Y n
和矩阵叫头,其中它的元素是节点矩阵的一些元素
2 6.2234 5.1234
3 10.4332 2.3243
我建立这个函数从磁头建造每节点的距离的矩阵
function [distances] = net_dist(nodes,heads)
nnodes = length(nodes(:,1));
distances = zeros(nnodes);
for i = 1 : nnodes
for j = 1 : nnodes
if nodes(i,1) == nodes(j,1) && ismember(nodes(j,1),heads(:,1))
distances(i,j) = sqrt((nodes(i,2) - nodes(j,2))^2 + (nodes(i,3) - nodes(j,3))^2);
elseif (nodes(i,1) == nodes(j,1) || nodes(i,1) ~= nodes(j,1)) && ismember(nodes(j,1),heads(:,1))
distances(i,j) = sqrt((nodes(i,2) - nodes(j,2))^2 + (nodes(i,3) - nodes(j,3))^2);
elseif (nodes(i,1) == nodes(j,1) || nodes(i,1) ~= nodes(j,1)) && ~ismember(nodes(j,1),heads(:,1))
distances(i,j) = 1E9;
end
end
end
return;
该函数应该返回每个节点距离头部的距离。非头部的节点之间的位置用1E9编号填充。我不明白为什么当我执行此功能,而不是接受开方值我收到的所有0
肯定我会得到这样类似的事情
1 2 3 4
1 1E9 d d 1E9
2 1E9 0 d 1E9
3 1E9 d 0 1E9
4 1E9 d 0 1E9