当前位置: 首页 > article >正文

matlab图论分析之指标计算(二)

图论分析是一种研究大脑功能网络的有效方法。通过将大脑的不同区域或电极视为节点,区域或电极之间的连接视为边,可以构建脑功能网络,并利用图论工具分析器拓扑特性。图论分析的指标有很多,简单介绍如下:
全局属性:
聚类系数:衡量节点聚集程度;
特征路径长度:衡量信息传递效率;
小世界性:兼具高聚类和短路径的特征;
全局效率:衡量网络信息传递效率;
局部属性:
节点度:节点的连接数;
介数中心性:节点在网络中的枢纽程度;
局部效率:衡量节点局部信息传递效率;

本次分析,主要计算特征路径长度,聚类系数,小世界指数,小世界指数是由特征路径长度和聚类系数计算出来的,我们为了便于计算,首先定义一个smallworldness函数,同时计算出这三个指标,具体实现如下:

function [L,C,sigma] = smallworldness(A,B)
输入A:邻接矩阵(二值图或加权图,都是无向的);B:1为二值图,2为加权图;
输出:L特征路径长度,C为聚类系数,sigma为小世界指数

% 随机时的参数初始化
L_rand = 0;
C_rand = 0;
ITER  = 10; 

% 判断是二值图还是加权图
if B == 1   % 二值图
    L = distance_bin(A);
    L = mean(L(L > 0 & L ~= inf)); % 特征路径计算,排除0和无穷大

    C = clustering_coef_bu(A);  % 聚类系数
    C = mean(C);         % 均值C

    % 随机生成网络
    for i = 1:ITER
        rand = randmio_und(A,10);% 随机网络 ,函数生成与实际网络具有相同的度分布
        D = distance_bin(rand);
        random_L = mean(D(D > 0 & D ~= inf));
        L_rand = L_rand + random_L; % 随机特征路径
        C_rand = C_rand + mean(clustering_coef_bu(rand)); % 聚类系数均值
    end
    L_rand = L_rand/10;
    C_rand = C_rand/10;
    sigma = (C/C_rand)/(L/L_rand);   % 计算小世界指数
else
    L = distance_wei(A);
    L = mean(L(L > 0 & L ~= inf)); % 特征路径计算

    C = clustering_coef_wu(A);  % 聚类系数
    C = mean(C);         % 均值C

    % 随机生成网络
    for i = 1:ITER
        % 随机网络 ,函数生成与实际网络具有相同的度分布
        random_y = A;  % 复制实际网络
        [row,~] = find(triu(A,1));  % 找到实际网络中的边
        numEdges = numel(row);         % 边数    
        weights = A(triu(A,1)>0); % 提取实际网络的权重
        random_weight = weights(randperm(numEdges));  % 随机化权重
        random_y(triu(A,1) > 0) = random_weight; % 更新权重
        random_y = triu(random_y,1) + triu(random_y,1)'; % 对称矩阵

        D = distance_wei(random_y); % 最短路径
        random_L = mean(D(D > 0 & D ~= inf));  % 忽略0或inf
        L_rand = L_rand + random_L; % 随机特征路径
        C_rand = C_rand + mean(clustering_coef_wu(random_y)); % 聚类系数均值

    end
    L_rand = L_rand/ITER;
    C_rand = C_rand/ITER;
    sigma = (C/C_rand)/(L/L_rand);% 计算小世界指数

end
% 

根据(一)中,或者其他方式计算出来的二值矩阵和加权矩阵,如:binary_matrix二值矩阵,weight_matrix加权矩阵,调用smallworldness函数:

[L_b,C_b,sigma_b] = smallworldness(binary_matrix,1);
[L_w,C_w,sigma_w] = smallworldness(weight_matrix,2);

计算结果如下:

在这里插入图片描述

注意:二值图的随机网络比较容易生成,而加权图的随机网络有些复杂,都需要与实际的网络保持度分布相同。计算方法有多种,选择自己擅长使用的即可。


http://www.kler.cn/a/590135.html

相关文章:

  • CSS @media print 使用详解
  • Flutter_学习记录_状态管理之GetX
  • 通过物联网与可视化技术搭建的智慧工地管理云平台,java智慧工地源代码,企业级源码
  • OpenManus 架构的详细技术实现
  • 算法——图论——最短路径(多边权)
  • 优化VsCode终端样式
  • 【前端动态列表渲染:如何正确管理唯一标识符(Key)?】
  • 设计模式Python版 模板方法模式(下)
  • React封装axios请求方法
  • 新能源电站系统建设提速!麒麟信安操作系统驱动光伏风电双领域安全升级
  • 【css酷炫效果】纯CSS实现立体纸张折叠动效
  • 机器学习_重要知识点整理
  • 双3060、Ubuntu22.04、cuda12.8安装deepseek 32b-Q8
  • 从零开始开发纯血鸿蒙应用之无框截图
  • 轨道交通3U机箱CPCI电机控制板(DSP),主要运行控制算法以对牵引电机进行精准的运动控制
  • 深度学习:分类和回归的区别
  • DOM4J解析XML, 修改xml的值
  • 独立部署DeepSeek 大语言模型(如 DeepSeek Coder、DeepSeek LLM)可以采用什么框架?
  • 蓝桥杯小球碰撞
  • 蓝桥杯 刷题统计