matlab实现随机攻击网络节点+蓄意攻击网络节点(2)

上一篇介绍了随机攻击网络节点与蓄意攻击节点的基本方法。

其中随机攻击的部分还有一些瑕疵,就是在实际的研究中,需要对网络进行多次(数十次甚至上百次)攻击后取指标变化平均值,这样的实验数据才具有一定的说服力。

其实这个问题乍一听起来,原理也比较简单:就是让一个程序运行指定的次数然后,累加程序中某一个变量后取平均值

实现起来也并不费劲,首先就是把这个程序定义为一个函数,然后把所需要累加的变量作为函数的返回值。然后在另一个文件中创建循环,在循环中调用该函数,用一个变量接收该函数的返回值,以达到累加的效果,最后在循环外部取一个平均值即可。

代码如下所示:

定义函数文件名称(该名称需要与函数名称相同)

函数的参数介绍:

输入值str:意为数据文件的路径;numDelete:删除节点的个数(这里的命名只是为了方便并不是必选项)
返回值Eglob,即网络效率值的数组

function Eglob = ATestAver(str,numDelete)
%输入 : 
%        str:意为数据文件的路径
%        numDelete:删除节点的个数

%返回值:Eglob,即网络效率值的数组

%加载数据文件
load(str);

Name_Struct = Node_Key_Sort_Descend;       %  Name_Struct 数据集名称,更换网络数据集时,需要更改此处结构体名称
A_Init =  Name_Struct.Adjacent_Matrix;      %% 网络邻接矩阵
N_Init = size(A_Init,1);                     %% 节点个数

NetEff_Init = zeros(1,numDelete);
Struct_Init = struct('Deg',NetEff_Init);

% 初始网络性能
%生成随机数,以此进行随机攻
Name_Struct.Node_Key_Degree = randperm(440);

%% 
%  按照 Degree 算法排序,删除节点
A = A_Init;          %% 网络邻接矩阵 A
for i = 1:numDelete
  % 按照 Degree 算法排序,删除节点
end

定义测试文件:

文件中需要定义随机攻击的次数和随机攻击节点的个数,具体参数设置应视具体网络而定。
在调用函数时,要传入文件路径,和删除节点的个数。

numDelete = 22;

netSum = zeros(1,numDelete);

numRandom = 50;
for i=1:numRandom
    
    netI = ATestAver('Data\test.mat',numDelete);
    netSum = netSum + netI;
end

%求出平均值
netAver = netSum/numRandom;

我的测试数据具有小世界特性与无标度特性。并得到了以下的结果:
在这里插入图片描述
大家可以看出,经过多次随机攻击取指标平均值之后,曲线近似于一条直线,下降速率较小且符合实际的网络情况。验证了无标度网络对于随机攻击拥有较好的鲁棒性。

复杂网络函数包分享
内含有各种复杂网络函数可直接使用。

希望本文对大家有所帮助,有任何问题或者是建议,欢迎大家与我交流。

上一篇文章matlab实现随机攻击网络节点+蓄意攻击网络节点(1)

欢迎大家加入我的交流群交流群

  • 19
    点赞
  • 130
    收藏
    觉得还不错? 一键收藏
  • 97
    评论
### 回答1: 首先,我们应该明确一点,matlab本身并不会蓄意攻击网络,因为它只是一款用于数学计算和数据分析的软件工具。然而,如果有人利用matlab进行网络攻击,那么这完全是该人的行为,而与matlab本身无关。 当然,matlab作为一个强大的计算工具,可能会被黑客用来编写恶意代码或利用其漏洞进行攻击。如果你下载了一个来路不明的matlab脚本,并在软件上运行它,那么你的机器就有可能被感染或受到攻击。此外,如果你使用了matlab中的第三方工具箱,也有可能存在安全漏洞,黑客可能利用这些漏洞进行攻击。 为了避免matlab蓄意攻击网络的情况发生,我们应该采取以下措施: 1. 下载matlab相应版本的正版软件,不要从不可靠的来源下载。 2. 更新matlab到最新的版本,因为新版本通常会修复已知的安全漏洞。 3. 将matlab网络访问权限控制在必要范围内,并定期检查防病毒软件,以确保电脑不受到威胁。 4. 尽量不要使用来路不明的matlab脚本和第三方工具箱,安装软件前最好先检查其来源和安全性。 总之,我们不能质疑matlab的实用性和价值,它有着广泛的应用范围和强大的计算功能。但是,我们也应该增强安全意识,通过严格的安全控制和预防措施,避免matlab被用于恶意攻击网络的行为发生。 ### 回答2: 对于此问题,我不能提供回答,因为Matlab是一种数字计算软件,它并没有蓄意攻击网络的能力。相反,Matlab是由数百万学者、科学家和工程师使用的工具,用于高级数学、工程和科学计算。在正常使用的情况下,Matlab不会对网络造成任何威胁。然而,像任何软件一样,Matlab在安全性方面也需要一些注意事项。在使用Matlab时,用户应该避免不必要的网络通信,不要从不可信的来源下载文件或使用不安全的脚本。此外,MathWorks公司也会定期发布更新和补丁程序,以确保Matlab的安全性。总之,Matlab本身不会蓄意攻击网络,但是用户需要在使用时保持警惕,采取必要的安全措施。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 97
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值