二元矩阵中连通元的非欧氏距离(Matlab)

时间:2017-09-17 15:47:50

标签: matlab geometry

  

我有(3x4)M矩阵连接“1”(连接4“北,南,东,西”),说:

M=[0 1 1 1;
   1 1 0 1;
   0 1 0 1];
  带索引元素的

:idx = 2 4 5 6 7 10 11 12; (8个要素)。 M可以被视为黑白像素的矩阵。

     

任何想法解决其(8x8)D矩阵的白色像素分离?   (探索:idx = 2和12的元素相隔6步=由5个白色像素分隔)

D=[0 2 1 2 3 4 5 6; 
   2 0 1 2 3 4 5 6;
   1 1 0 1 2 3 4 5;
   2 2 1 0 1 2 3 4;
   3 3 2 1 0 1 2 3;
   4 4 3 2 1 0 1 2;
   5 5 4 3 2 1 0 1;
   6 6 5 4 3 2 1 0]

1 个答案:

答案 0 :(得分:0)

制作一个图表,其中节点是非零元素,边连接相邻元素。您的示例的邻接列表(连接边列表):

2-5
4-7, 4-5
5-2, 5-4, 5-6
6-5
and so on

然后使用任何算法查找所有节点之间的所有最短路径。

Breadth-first search允许从第一个节点找到所有最短路径,然后从第二个节点找到所有最短路径,依此类推。复杂度O(V * E)。这里E~V,所以O(V ^ 2)

Floyd-Warshall algorithm非常简单 - 3-4行代码。 O(V ^ 3) - 它用于加权图。