[发明专利]一种MATLAB程序文件相似度的评估方法有效

专利信息
申请号: 201610486747.1 申请日: 2016-06-28
公开(公告)号: CN106202007B 公开(公告)日: 2018-09-07
发明(设计)人: 郝凯敏;刘志亮;康金龙;王志冶;彭华伟 申请(专利权)人: 电子科技大学
主分类号: G06F17/22 分类号: G06F17/22;G06F17/50
代理公司: 成都行之专利代理事务所(普通合伙) 51220 代理人: 温利平
地址: 611731 四川省成*** 国省代码: 四川;51
权利要求书: 查看更多 说明书: 查看更多
摘要: 发明针对现有技术存在的问题,通过全局变量,对MATLAB程序文件进行预处理,然后寻找关键字,再通过关键字的位置比较、关键字切割内容比较,得到基于关键字的相似度,通过基于行代码的精确和模糊比较,得到基于行的相似度,最终选取基于关键字的相似度、基于行的相似度的较小值作为基于结构的相似度评估的结果。此外,本发明还提供基于过程的相似度评估,通过运行产生的变量值进行相互逐一比较,然后平均得到基于过程的相似度。这样,将相似度大的MATLAB程序文件,通过适度修改,使其可以相互调用,而变得简洁,同时使运行效率提高。
搜索关键词: 一种 matlab 程序 文件 相似 评估 方法
【主权项】:
1.一种MATLAB程序文件相似度的评估方法,其特征在于,包括以下步骤:(1)、初始化MATLAB运行环境清除全局变量,关闭未关闭的运行窗口,删除不需要的变量和文件;(2)、文件读取与相似度评估模式选取读取样本文件以及对比文件,存入全局变量,同时,选取相似度评估模式存入全局变量,其中样本文件和对比文件都是MATLAB程序文件,相似度评估模式包括基于结构的相似度评估以及基于过程的相似度评估;(3)、基于结构的相似度评估3.1)、预处理获取全局变量,当选取了基于结构的相似度评估的时候,首先对样本文件进行预处理,获取该样本文件中的第一行代码;去除注释:对于符号“%”,如果其在两个符号“'”之间,则认为其在代码中,予以保留,否则,认为其不在代码中,为注释符号,删除该符号“%”以及该符号后的内容;分行:对于符号“;”,如果其在“{}”或“[]”之间,则不进行分行,如果没有,则进行分行;对代码中的空格判断:对大于等于2的空格,利用差分方程,进行剔除,使得代码之间中只保留一个空格;空行处理:判断是否为空行,如果为空行,剔除此行;把第一行代码存到样本文件元胞中,同理也对其他行,进行相应的预处理,直到样本文件的全部代码处理完毕;然后,对对比文件也进行样本文件相同的预处理;3.2)、寻找关键字与基于关键字的相似度评估3.2.1)、从样本文件元胞中分离每个字符串,并把字符串与关键字库的关键字进行对比,如果存在,则与对比文件元胞中的字符进行对比,如果在对比文件元胞中存在,则作为关键字予以保留;3.2.2)、相似度评估关键字的位置:获取关键字的位置信息,如果关键字在样本文件元胞、对比文件元胞中为同一行且位置差为5,则相似度百分比为100;为同一行且位置差大于5小于15,则相似度百分比为100‑(位置差‑5);为同一行且位置差大于15,则相似度为0;如果关键字不在同一行,则不进行比较;对于每一个关键字,根据关键字的位置信息,得到各行的相似度然后进行平均,得到该关键字的相似度;对各个关键字的相似度取均值作为关键字位置相似度;关键字切割:将样本文件中两个关键字之间的代码进行切割,得到m段代码,并进行保存,同样,将对比文件中两个关键字之间的代码进行切割,得到n段代码,并进行保存,然后将m段代码中的每一段代码与n段代码逐一进行比较,如有相同,则定义相似度百分比为100,如都不同,则定义相似度为0;将各段比较得到的相似度取均值,得到关键字切割相似度;比较关键字位置相似度以及关键字切割相似度,从中取相似度最大的值作为评估出的基于关键字的相似度;3.3)、基于行的相似度评估以行进行分析:从样本文件中依次读取一行代码提取出来,与对比文件中的每一行代码进行准确对比,如果相同,则进行标记;准确比对结束后,依次将样本文件中未标记的行代码的关键字进行切割,并与对比文件中未标记的行代码进行模糊对比,如果两行代码中存在大于等于3个关键字,则匹配成功,进行标记;将进行了标记的行数除以总行数,得到基于行的相似度,其中,所述总行数是指样本文件、对比文件代码行数中的较大者;3.4)、对于基于关键字的相似度和基于行的相似度中,选取相似度较小值作为基于结构的相似度评估的结果;(4)、基于过程的相似度评估获取全局变量,当选取了基于过程的相似度评估的时候,创建不可见的figure,让样本文件程序运行,将运行产生的变量进行保存,把对应变量值也保存,同理对对比文件也进行相同操作;首先,将保存的样本文件运行得到的每一个变量值,与保存的对比文件运行得到的变量值逐一进行对比,如果在对比文件运行得到的变量值中有一个变量值相同,则定义样本文件运行得到的该变量值的相似度百分比为100,如果都不同,则定义相似度为0,然后,将样本文件运行得到的所有变量值的相似度进行平均,得到基于过程的相似度。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于电子科技大学,未经电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/patent/201610486747.1/,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

400-8765-105周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top