在网络科学研究中,如果某个网络中的节点可以轻易地被划分为若干个内部紧密连接的节点集(集合间可能重合),那么就可以说这个网络具有社团结构 Community structure。除节点集重叠的特殊情况下外,网络自然地被分成一个个节点集,这些节点集内部连接紧密,而节点集与节点集之间连接稀疏(但也存在节点集重叠的情况)。 更广泛的定义基于以下原则:即如果节点对同属一个社团,则更有可能相互连接;如果不属于同一个社团,则更不可能相互连接。 一个相关但不同的问题是社团搜索,其目标是找到某个节点所属的社团。

属性

在研究计算机、信息网络、社会网络和生物网络等网络时,经常发现网络具有许多不同的特征,包括小世界性 Small-world property、重尾度分布 Heavy-tailed degree distributions和聚集性 Clustering等。 而网络也具有共同特征——都具有社团结构。

将节点集进行划分,就产生了一个个社团。也就是说,每个节点被放入一个社团中,且该社团唯一,这是一个有用的简化,多数社团检测算法都适用于这种类型的社团结构。然而在某些情况下,一个节点位于多个社团(即社团具有重叠性)的社团结构能够更好表示所研究的对象。这可能发生在社交网络中:每个节点代表一个人,而社团代表不同的朋友群体,如: 一个社团代表家庭,另一个社团代表同事,还有一个社团代表来自同一体育俱乐部的朋友等等。 下面所讨论的基于团结构的社团检测算法 Clique-based method的例子,就属于这种具有重叠性的社团结构。

有些网络可能不具有任何有意义的社团结构。例如许多基本的网络模型,例如随机图 Random graph和 Barabsi-Albert 模型 Barabási–Albert model就不具有社团结构。

重要性

一个演示社团结构的小型网络示意图,包含三组内部紧密连接的节点,各组之间连接较为稀疏

社团结构在实际网络中相当常见,社会网络包括基于相同位置、兴趣、职业等的社团团体(实际上是这个术语的起源)。

在网络中找到一个潜在的社团结构(如果它存在的话)是很重要的,原因如下:

第一,社团允许我们创建一个大范围的网络地图,因为单个社团就像网络中的元节点,这使得研究更加容易;

第二,由于社团通常与系统的功能单元相对应,因此单个社团也能阐明网络所代表的系统功能。如在代谢网络中,这些功能组对应于周期或路径;而在蛋白质相互作用网络 Protein-protein interaction network中,社团对应于生物细胞内具有类似功能的蛋白质;在引用网络中,社团对应于研究主题。 而识别网络中的子结构,有助于深入了解网络的功能以及拓扑效应之间是如何相互影响的。这种见解对于改进谱聚类 Spectral clustering等图的数据处理算法有一定的参考价值。

第三,若只关注普遍属性通常会忽略网络内部许多重要且有趣的特性,而社团的属性通常与网络的普遍属性不同。例如,在一个给定的社交网络中,爱交际的群体和沉默寡言的群体可能同时存在。

第四,社团的存在通常也会影响到传播过程,如在网络上发生的谣言传播或流行病传播。 因此,为了正确理解这些过程,最重要的就是检测社团,并研究它们如何在各种环境下影响传播过程。

最后,社团检测在网络科学中的一个重要应用是预测网络中的缺失链接和识别网络中的错误链接。 在检测过程中,由于多种原因,有些链接可能无法被观察到。同样,由于检测中的失误,一些链接可能会错误地输入数据。由于社团检测算法允许给定节点对之间存在连边,因此可以很好地处理这两种情况。

社团检测算法

在任意网络中检测社团可能是一项困难的计算任务。 网络中的社团数目(如果存在的话)通常是未知的,且社团规模和密度往往不同。尽管存在这些困难,一些检测社团的方法已经被发展和应用,并取得了不同程度的成功。

最小割法

将网络划分为若干部分的最古老的算法之一是最小割法(以及诸如比率割法和归一化割法等变体)。 此方法可用于并行计算的负载平衡,尽可能减少处理器节点之间的通信。

在最小割法中,网络被分割成预定数量且大小相似的部分,选择这些部分使得节点组之间的边数达到最小。这种算法在许多应用程序中运行良好,但并不适用于检测一般网络中的社团结构,因为不论社团是否隐含在结构中,它只能找到数目固定的社团,而社团的数目通常是未知的。

层次聚类

在网络中检测社团结构的另一种方法是层次聚类 Hierarchical clustering。 在这种算法中,定义了一种相似性度量 Similarity measure,去量化节点对之间的某些(通常是拓扑的)相似性。 常用的测量方法包括余弦距离 Cosine similarity、雅卡德指数 Jaccard index,以及汉明距离邻接矩阵 Hamming distance between rows of the adjacency matrix。 然后根据该算法将相似的节点分组到同一个社团中。

有几种常见的分组方案,其中最简单的两种是单链接聚类和完全链接聚类。前者在不同群组中的所有节点对的相似度小于给定的阈值的情况下,将两个群组视为独立的社团; 后者则是在每个群组中的所有节点对的相似度大于给定的阈值的前提之下进行分组。 一个有趣的方法是使用各种相似或不同的测度,通过凸和 convex sums来改进层次聚类的性能。

Girvan-Newman 社团检测算法

另一个常见的社团检测算法是 Girvan-Newman 算法 Girvan–Newman algorithm

Girvan-Newman算法返回的结果具有较好的质量,且由于它与许多标准软件包兼容,因此得到广泛应用。但其运行缓慢,在n个顶点和m条边的网络上耗费时长为O(m2n),导致其并不适用于超过几千个节点的网络。

代码实现

利用网络科学工具包NetworkX, 可以轻松调用GN算法实现社团检测。示例如下:

import networkx as nx

from networkx.algorithms import community

from community.centrality import girvan_newman #导入GN算法包

G = nx.path_graph(10) #生成一个大小为10的path graph

comp = girvan_newman(G)

print(tuple(sorted(c) for c in next(comp)))

结果:

([0, 1, 2, 3, 4], [5, 6, 7, 8, 9]) #输入Top-1的划分结果,为两个社团

模板度最大化

尽管模板度最大值法有着它众所周知的缺点,但它依然是用于使用最为广泛的社团检测算法之一。模块度 Modularity是一种衡量社团划分质量的标准,也是一个利益函数。 模块度最大值法通过搜索一个或多个具有特别高的模块化的网络的可能划分来检测社团。由于对所有可能的划分进行穷举搜索十分困难,所以实际的算法都是基于近似优化方法,如贪婪算法,模拟退火或光谱优化。不同的算法使得检测速度和准确性之间达到不同类型的平衡。Louvain 算法 Louvain method,该算法迭代地优化本地社团,直到社团状态不再变化、全局模块化不能够再得到改善。EEL范式 Extremal Ensemble Learning paradigm的例子。

模块度优化的有效性是值得怀疑的,因为模块度优化受分辨率的大小限制,导致某个规模更小的集群很难被检测到;

代码实现

利用网络科学工具包NetworkX, 可以轻松调用Clauset-Newman-Moore 贪婪模块度最大化算法,这是一种模块度最大化的近似算法。示例如下:

import networkx.algorithms.community as community

from community import greedy_modularity_communities

G = nx.karate_club_graph()

c = list(greedy_modularity_communities(G))

prin(sorted(c[0])) #输出第一个社团中的节点

结果:

[8, 14, 15, 18, 20, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33]

基于推论统计学的社团检测算法

基于推论统计学的算法试图将生成模型数据和能对社团结构进行编码的网络数据相匹配。 与其他办法相比,这种办法的总体优势在于其原则性更强,而且有能力从根本上解决具有统计意义的问题。 文献中的算法大多是基于随机块模型 The stochastic block model

基于团结构的社团检测算法

团就是一个无向图的完全子图,团中的每个节点都与团中的其他节点相连。 由于节点之间的联系不可能比这更紧密,所以在网络中产生了很多基于团结构的社团检测算法,由此还可以分析具有重叠性的社团结构。在这些算法中,一个节点可以同时属于多个社团,从而形成一个“重叠的社团结构”。

如果一个团不被其他任一团所包含,即它不是其他任一团的真子集,则称该团为图的极大团 maximal clique 。基于团的社团检测算法其中的一种方法就是找到“极大团” 。(其简单思想是:生成原始图的所有子图(可能有2n-1个子图,n表示节点个数)→判断这些子图是不是团→删除非极大团的其他团)其中, Bron-Kerbosch 算法 The Bron–Kerbosch algorithm 是找到极大团的经典算法之一。 最简单的方法是只考虑大于最小尺寸(节点数)的极大团。 这些团体的联合被定义为一个子图,其组件(断开的部分)被定义为社团。

另一种方法是使用固定大小的团体,设大小为[math]\displaystyle{ k }[/math]。 这些图的重叠可以用来定义一类 [math]\displaystyle{ k }[/math]- 正则超图或一种团图(线图的一种推广,此时[math]\displaystyle{ k=2 }[/math])。团渗透算法 clique percolationk-clique的渗透集群。 为了做到这一点,需找到一个网络中的所有 [math]\displaystyle{ k }[/math]派系,即所有完整子图的 [math]\displaystyle{ k }[/math] 个节点。然后定义两个共享 [math]\displaystyle{ k-1 }[/math]个节点的 k-cliques 为相邻 k-cliques ,即用于定义团图中的边。然后将社团定义为 k-clique 的最大并集,其中任意k-clique 可以通过一系列 k-clique 邻接,从任意 k-clique 到达其他 k-clique 。也就是说,社团只是团图中的连通组件。 由于一个节点可以同时属于几个不同的 k-clique 渗透簇,故社团之间可以相互重叠。

代码实现

利用网络科学工具包NetworkX, 可以调用基于渗流方法的K-clique社团检测算法。示例如下:

# 导入算法包

from networkx.algorithms.community import k_clique_communities

# 构造图

G = nx.complete_graph(5)

K5 = nx.convert_node_labels_to_integers(G,first_label=2)

G.add_edges_from(K5.edges())

# 对图G进行社团检测,制定最小cliques=4

c = list(k_clique_communities(G, 4))

社团检测算法的评价标准

如何对算法进行评价以判断哪些能够更好地检测到社团结构仍悬而未决,必须基于对已知结构的网络的分析。 一个典型的例子是”四组”测试,在这种测试中,一个网络被分成四个大小相等的组(通常每组32个节点) ,由于组内和组间连接的概率各不相同,导致出现了一些具有挑战性的社团结构,这为社团检测制造了一定难度。这样的基准图是康德 Condon 和 卡帕 Karp 的种植 l-分区模型 The planted l-partition modelLFR 基准测试 LFR benchmark

常用的计算机生成基准测试从定义良好的社团网络开始。这种结构由于重新布线或删除链接而退化,使得算法越来越难以检测到原始分区。最后,网络到达一个随机点。这种基准可以称为是“开放的”。这些基准的性能是通过标准化互信息 Normalized mutual information 或信息变化 Variation of information等度量来评估的。 他们将算法

可探测性

近年来,在对各种社团的研究中,我们得到一个相当惊人的结果——社团检测问题存在阶段性转变,这表明随着社团内部和社团之间连接的密度越来越接近或两者都变得越来越小(由于社团结构变得太弱或网络变得太稀疏) ,社团就会突然变得无法检测。

从某种意义上说,社团本身仍然存在,因为边的存在和缺失仍然与其节点的社团成员关系密切;但是,从理论上讲,如果没有社团结构,就不可能更好地标记节点,甚至不可能将图与由Erdos-Renyi模型 Erdos–Renyi model等空模型生成的图区分开来。这种转换与用于检测社团的算法类型无关,这意味着我们在网络中检测社团的能力存在根本的限制,即使我们使用最优的贝叶斯推理(而不考虑我们的计算资源)。

考虑一个具有 [math]\displaystyle{ n }[/math] 个节点,[math]\displaystyle{ q=2 }[/math] 的相同组的随机块模型,并且设 [math]\displaystyle{ p_\text{in} }[/math] 和 [math]\displaystyle{ p_\text{out} }[/math] 分别是组内和组间的连接概率。

如果 [math]\displaystyle{ p_\text{in}\gt p_\text{out} }[/math] ,由于社团内部的链接密度大于群体之间的链接密度,网络将具有群体结构。

在稀疏情况下, [math]\displaystyle{ p_\text{in} }[/math] 和 [math]\displaystyle{ p_\text{out} }[/math] 都以 [math]\displaystyle{ O(1/n) }[/math] 为比例,所以平均温度是恒定的,则有: [math]\displaystyle{ p_\text{in}=c_\text{in}/n }[/math] 和 [math]\displaystyle{ p_\text{out}=c_\text{out}/n }[/math]

然后就不可能在下列情况检测到这些社团[math]\displaystyle{ c_\text{in}-c_\text{out}=\sqrt{2(c_\text{in}+c_\text{out})} }[/math]

参考文献

S. Fortunato (2010). "Community detection in graphs". Phys. Rep. 486 (3–5): 75–174. arXiv:Bibcode:2010PhR...486...75F. doi:10.1016/j.physrep.2009.11.002.

F. D. Malliaros; M. Vazirgiannis (2013). "Clustering and community detection in directed networks: A survey". Phys. Rep. 533 (4): 95–142. arXiv:Bibcode:2013PhR...533...95M. doi:10.1016/j.physrep.2013.08.002.

M. A. Porter; J.-P. Onnela; P. J. Mucha (2009). "Communities in Networks" (PDF). Notices of the American Mathematical Society. 56: 1082–1097, 1164–1166.

Fani, Hossein; Bagheri, Ebrahim (2017). "Community detection in social networks". Encyclopedia with Semantic Computing and Robotic Intelligence. 1. pp. 1630001 [8]. doi:10.1142/S2425038416300019.

Hamdaqa, Mohammad; Tahvildari, Ladan; LaChapelle, Neil; Campbell, Brian (2014). "Cultural Scene Detection Using Reverse Louvain Optimization" (PDF). Science of Computer Programming. 95: 44–72. doi:10.1016/j.scico.2014.01.006.

M.E.J.Neman (2006). "Finding community structure in networks using the eigenvectors of matrices". Phys. Rev. E. 74 (3): 1–19. arXiv:Bibcode:2006PhRvE..74c6104N. doi:10.1103/PhysRevE.74.036104. PMID 17025705.

Aaron Clauset; Cristopher Moore; M.E.J. Newman (2008). "Hierarchical structure and the prediction of missing links in networks". Nature. 453 (7191): 98–101. arXiv:Bibcode:2008Natur.453...98C. doi:10.1038/nature06830. PMID 18451861.

M. E. J. Newman (2004). "Detecting community structure in networks". Eur. Phys. J. B. 38 (2): 321–330. Bibcode:2004EPJB...38..321N. doi:10.1140/epjb/e2004-00124-y. hdl:2027.42/43867.

Alvarez, Alejandro J.; Sanz-Rodríguez, Carlos E.; Cabrera, Juan Luis (2015-12-13). "Weighting dissimilarities to detect communities in networks". Phil. Trans. R. Soc. A. 373 (2056): 20150108. Bibcode:2015RSPTA.37350108A. doi:10.1098/rsta.2015.0108. ISSN 1364-503X. PMID 26527808.

M. E. J. Newman (2004). "Fast algorithm for detecting community structure in networks". Phys. Rev. E. 69 (6): 066133. arXiv:Bibcode:2004PhRvE..69f6133N. doi:10.1103/PhysRevE.69.066133. PMID 15244693.

L. Danon; J. Duch; A. Díaz-Guilera; A. Arenas (2005). "Comparing community structure identification". J. Stat. Mech. 2005 (9): P09008. arXiv:Bibcode:2005JSMTE..09..008D. doi:10.1088/1742-5468/2005/09/P09008.

V.D. Blondel; J.-L. Guillaume; R. Lambiotte; E. Lefebvre (2008). "Fast unfolding of community hierarchies in large networks". J. Stat. Mech. 2008 (10): P10008. arXiv:Bibcode:2008JSMTE..10..008B. doi:10.1088/1742-5468/2008/10/P10008.

J. Guo; P. Singh; K.E. Bassler (2019). "Reduced network extremal ensemble learning (RenEEL) scheme for community detection in complex networks". Scientific Reports. 9 (14234). doi:10.1038/s41598-019-50739-3.

S. Fortunato; M. Barthelemy (2007). "Resolution limit in community detection". Proceedings of the National Academy of Sciences of the United States of America. 104 (1): 36–41. arXiv:Bibcode:2007PNAS..104...36F. doi:10.1073/pnas.0605965104. PMC PMID 17190818.

B. H. Good; Y.-A. de Montjoye; A. Clauset (2010). "The performance of modularity maximization in practical contexts". Phys. Rev. E. 81 (4): 046106. arXiv:Bibcode:2010PhRvE..81d6106G. doi:10.1103/PhysRevE.81.046106. PMID 20481785.

Holland, Paul W.; Kathryn Blackmond Laskey; Samuel Leinhardt (June 1983). "Stochastic blockmodels: First steps". Social Networks. 5 (2): 109–137. doi:10.1016/0378-8733(83)90021-7. ISSN 0378-8733.

Airoldi, Edoardo M.; David M. Blei; Stephen E. Fienberg; Eric P. Xing (June 2008). "Mixed Membership Stochastic Blockmodels". J. Mach. Learn. Res. 9: 1981–2014. ISSN 1532-4435. PMC PMID 21701698. Retrieved 2013-10-09.

Ball, Brian; Brian Karrer; M. E. J. Newman (2011). "Efficient and principled method for detecting communities in networks". Physical Review E. 84 (3): 036103. arXiv:Bibcode:2011PhRvE..84c6103B. doi:10.1103/PhysRevE.84.036103. PMID 22060452.

Karrer, Brian; M. E. J. Newman (2011-01-21). "Stochastic blockmodels and community structure in networks". Physical Review E. 83 (1): 016107. arXiv:Bibcode:2011PhRvE..83a6107K. doi:10.1103/PhysRevE.83.016107. PMID 21405744.

Peixoto, Tiago P. (2014-03-24). "Hierarchical Block Structures and High-Resolution Model Selection in Large Networks". Physical Review X. 4 (1): 011047. arXiv:Bibcode:2014PhRvX...4a1047P. doi:10.1103/PhysRevX.4.011047.

P. Peixoto, T. (2013). "Parsimonious Module Inference in Large Networks". Phys. Rev. Lett. 110 (14): 148701. arXiv:Bibcode:2013PhRvL.110n8701P. doi:10.1103/PhysRevLett.110.148701. PMID 25167049.

P. Peixoto, T. (2017). "Bayesian stochastic blockmodeling". arXiv:stat.ML].

Yan, Xiaoran; Jacob E. Jensen; Florent Krzakala; Cristopher Moore; Cosma Rohilla Shalizi; Lenka Zdeborová; Pan Zhang; Yaojia Zhu (2012-07-17). "Model Selection for Degree-corrected Block Models". Journal of Statistical Mechanics: Theory and Experiment. 2014 (5): P05007. arXiv:Bibcode:2014JSMTE..05..007Y. doi:10.1088/1742-5468/2014/05/P05007. PMC PMID 26167197.

Decelle, Aurelien; Florent Krzakala; Cristopher Moore; Lenka Zdeborová (2011-12-12). "Asymptotic analysis of the stochastic block model for modular networks and its algorithmic applications". Physical Review E. 84 (6): 066106. arXiv:Bibcode:2011PhRvE..84f6106D. doi:10.1103/PhysRevE.84.066106. PMID 22304154.

Peixoto, Tiago P. (2014-01-13). "Efficient Monte Carlo and greedy heuristic for the inference of stochastic block models". Physical Review E. 89 (1): 012804. arXiv:Bibcode:2014PhRvE..89a2804P. doi:10.1103/PhysRevE.89.012804. PMID 24580278.

Clauset, Aaron; Cristopher Moore; M. E. J. Newman (2008-05-01). "Hierarchical structure and the prediction of missing links in networks". Nature. 453 (7191): 98–101. arXiv:Bibcode:2008Natur.453...98C. doi:10.1038/nature06830. ISSN 0028-0836. PMID 18451861.

M.G. Everett; S.P. Borgatti (1998). "Analyzing Clique Overlap Connections". Connections. 21: 49.

T.S. Evans (2010). "Clique Graphs and Overlapping Communities". J. Stat. Mech. 2010 (12): P12037. arXiv:Bibcode:2010JSMTE..12..037E. doi:10.1088/1742-5468/2010/12/P12037.

G. Palla; I. Derényi; I. Farkas; T. Vicsek (2005). "Uncovering the overlapping community structure of complex networks in nature and society". Nature. 435 (7043): 814–818. arXiv:Bibcode:2005Natur.435..814P. doi:10.1038/nature03607. PMID 15944704.

Condon, A.; Karp, R. M. (2001). "Algorithms for graph partitioning on the planted partition model". Random Struct. Algor. 18 (2): 116–140. CiteSeerX doi:10.1002/1098-2418(200103)18:2<116::AID-RSA1001>3.0.CO;2-2.

A. Lancichinetti; S. Fortunato; F. Radicchi (2008). "Benchmark graphs for testing community detection algorithms". Phys. Rev. E. 78 (4): 046110. arXiv:Bibcode:2008PhRvE..78d6110L. doi:10.1103/PhysRevE.78.046110. PMID 18999496.

Fathi, Reza (April 2019). "Efficient Distributed Community Detection in the Stochastic Block Model". arXiv:

M. Q. Pasta; F. Zaidi (2017). "Leveraging Evolution Dynamics to Generate Benchmark Complex Networks with Community Structures". arXiv:cs.SI].

Pasta, M. Q.; Zaidi, F. (2017). "Topology of Complex Networks and Performance Limitations of Community Detection Algorithms". IEEE Access. 5: 10901–10914. doi:10.1109/ACCESS.2017.2714018.

Reichardt, J.; Leone, M. (2008). "(Un)detectable Cluster Structure in Sparse Networks". Phys. Rev. Lett. 101 (78701): 1–4. arXiv:Bibcode:2008PhRvL.101g8701R. doi:10.1103/PhysRevLett.101.078701.

Decelle, A.; Krzakala, F.; Moore, C.; Zdeborová, L. (2011). "Inference and Phase Transitions in the Detection of Modules in Sparse Networks". Phys. Rev. Lett. 107 (65701): 1–5. arXiv:Bibcode:2011PhRvL.107f5701D. doi:10.1103/PhysRevLett.107.065701. PMID 21902340.

Nadakuditi, R.R; Newman, M.E.J. (2012). "Graph Spectra and the Detectability of Community Structure in Networks". Phys. Rev. Lett. 108 (188701): 1–5. arXiv:Bibcode:2012PhRvL.108r8701N. doi:10.1103/PhysRevLett.108.188701. PMID 22681123.

进一步阅读

相关链接

编者推荐

该文章主要介绍了模块度的产生、原理和实现过程。作者利用矩阵形式减少计算时长,最后使用matlab进行计算。

该文章首先介绍了Louvain 算法,并使用Java语言实现了该算法。

相关课程

该课程中主要讲解了网络中集团结构的定义,以及层次聚类法、GN 聚类法的思想,从中观尺度——社团结构去探索复杂网络的性质。

本中文词条由趣木木参与编译,苏格兰审校,Meng莫、薄荷编辑,代码由高飞提供,欢迎在讨论页面留言

本词条内容源自wikipedia及公开资料,遵守 CC3.0协议。

社团结构 matlab,社团结构相关推荐

  1. matlab根据结构体数组,用邻接矩阵和序遍历创建树形结构:

    matlab根据结构体数组,用邻接矩阵和先序遍历创建树形结构: https://blog.csdn.net/C_Redrock/article/details/84980241

  2. matlab单元数组和结构,Matlab中单元数组和结构数组

    前言: 单元数组和结构数组是一种新的数据类型,能将不同类型.不同维数的数组组合在一起,从而方便对不同的数据类型方便管理和维护. 如上图所示的2*2矩阵中,分别存储着四种不同的数据类型,分别为数组.字符 ...

  3. matlab struct 结构体

    matlab 的结构体第一次让 matlab 中的变量有了可以通过 .访问的成员变量,有了类的含义,甚至是面向对象的意味. 1. 结构体的赋值 结构体的赋值,这里不建议用下面这种形式进行统一赋值, s ...

  4. matlab 循环结构

    matlab 循环结构 for语句 while语句 break continue for语句 格式: for 循环变量=矩阵表达式循环体语句 end while语句 格式: while 条件:循环体语 ...

  5. if 结构matlab,matlab选择结构_matlab怎样用选择结构

    matlab选择结构 2.2  选择结构 1.if语句 在MATLAB中,if语句有3种格式. (1) 单分支if语句: if  条件 语句组 end 当条件成立时,则执行语句组,执行完之后继续执行i ...

  6. matlab程序结构分为哪三种,matlab程序结构

    如何优化程序? 一言以蔽之:全部使用函数! 如何优化文件? 一言以蔽之:做成工具箱! 今天师姐要我上次matlab做的后处理文件,当时是用脚本写的,根本没用心修改过.洋洋洒洒500多行,现在看起来都头 ...

  7. MATLAB选择结构之if语句

    目录 1.if 语句 (1) 单分支 if 语句 (2)双分支 if 语句 (3)多分支if 语句 选择结构又称为分支结构,他根据给定的条件是否成立,来决定程序的运行路线,在不同的条件下,执行不同的操 ...

  8. Matlab:结构体数组

    Matlab:结构体数组 创建标量结构体 访问字段中的值 对非标量结构体数组进行索引 当您有要按名称组织的数据时,可以使用结构体来存储这些数据.结构体将数据存储在名为字段的容器中,然后您可以按指定的名 ...

  9. MATLAB 访问结构体

    MATLAB 访问结构体 如何查看matlab的结构体中有多少个元素? ids = fieldnames(rois); length(ids)

最新文章

  1. wkhtmltopdf
  2. mysql接口测试_用python实现接口测试(四、操作MySQL)
  3. cJSON使用教程(树外构建 out of tree build 概念)(组包概念)
  4. c语言复杂的程序代码,C语言中复杂结构的序列化
  5. Swift3中数组创建方法
  6. 关于std:auto_ptr
  7. 面试官:聊一下你对MySQL索引的理解?
  8. ffmpeg相关资源
  9. 如何用VB.NET控制Excel單元格裡的內容?
  10. webbrowser 模块的 open()方法
  11. Python演示--UDP套接字真的无连接吗?
  12. 百度远场语音识别套件-开箱评测
  13. Unieap3.5-Grid翻页不提示修改
  14. 【抽象代数】半群、子群、商群
  15. 项目风险管理之风险分析
  16. 英语介词at、in、on常见用法(时间、地点、方位)
  17. 567个!最常用的英语动词短语搭配汇总大全!
  18. pdf文件如何删除其中一页内容
  19. Windows10下查看网卡MAC地址的方法
  20. 网页跳转(APP内/浏览器)

热门文章

  1. 启用Desktop Central Cloud:以SaaS方式拥抱UEM !
  2. 手机百度浏览器底部fixed悬浮框屏蔽问题,终极解决方案
  3. Java @queryhint_11个JPA和Hibernate查询配置小技巧
  4. sql server 函数大全
  5. 交叉编译器arm-linux-gcc,aarch64-himix200-linux-gcc命令找不到 not found ,所有原因全方位解析
  6. 淘宝商品详情API接口(item_get-获得淘宝商品详情接口)
  7. 如何用Python代码发一个炫酷的朋友圈
  8. [yzhpdh多读paper] The evolution of citation graphs in artificial intelligence research
  9. 207.课程表 | 210.课程表II(拓扑排序)
  10. 西游记中的几位女妖怪