通过不同的MATLAB结构循环

  • 本文关键字:MATLAB 结构 循环 matlab
  • 更新时间 :
  • 英文 :


图表由两件事表示,一组nodes V和一组edges U,因为将节点1与节点2连接到v。

中的节点CC_4时

现在,我有一个图形,其顶部/节点集:

V = [1 2 3 4 5 6];

及其边缘:

U = {[1 6],[2 3],[3 5],[2 4],[5 1]};

如何为循环编写循环以检查最高数字1 V(1)是否在边缘列表U上与最高号码2 V(2)连接?


这个问题动机背后的背景

  1. 我需要找到使用MATLAB的图形。
  2. 因为我需要在单独的集合中脱节这两个顶部。

如何为循环编写以检查最高数字1是否与最高号码连接?

这是它的功能。创建一个名为areConnect.m的文件,然后将其放在:

function areConnected = areConnect( topA, topB, U )
    for i = 1 : numel( U )
        vector = cell2mat( U(i) );
        if topA == vector(1) && topB == vector(2)
            areConnected = true;
            return
        end
        if topB == vector(1) && topA == vector(2)
            areConnected = true;
            return
        end
    end
    areConnected = false;
end

在您的主要程序上,您可以对其进行测试:

V = [1 2 3 4 5 6]
U = {[1 6],[2 3],[3 5],[2 4],[5 1]}
areConnected16 = areConnect( V(1), V(6), U )
areConnected12 = areConnect( V(1), V(2), U )

它将导致以下输出:

V =
     1     2     3     4     5     6
U = 
    [1x2 double]    [1x2 double]    [1x2 double]    [1x2 double]    [1x2 double]
areConnected16 =
     1
areConnected12 =
     0

参考:

  1. https://www.mathworks.com/help/matlab/matlab_prog/access-data-in-a-a-cell-aray-aray.html
  2. https://www.mathworks.com/help/matlab/ref/specialcharacters.html

最新更新