- 在线时间
- 2 小时
- 最后登录
- 2015-4-14
- 注册时间
- 2015-4-8
- 听众数
- 9
- 收听数
- 0
- 能力
- 0 分
- 体力
- 59 点
- 威望
- 0 点
- 阅读权限
- 20
- 积分
- 34
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 33
- 主题
- 5
- 精华
- 0
- 分享
- 0
- 好友
- 1
升级   30.53% TA的每日心情 | 开心 2015-4-14 18:58 |
|---|
签到天数: 4 天 [LV.2]偶尔看看I
- 自我介绍
- 不知道,或许吧
|
我知道楼主在这里肯定要不到想要的答案的,虽然帮不上忙,但是我尽力,所以刚刚花了几分钟写了个py脚本提取了一下自己1900+个m文件的“函数”出现频率前100的,如下(函数加引号是因为没法区分出函数和变量来,所以自己人脑区分吧~):
('size', 1147) ('subplot', 1141) ('zeros', 1099) ('ones', 814)
('sym', 670) ('abs', 669) ('title', 652) ('find', 566)
('max', 563) ('figure', 548) ('min', 522) ('subs', 459)
('findsym', 436) ('set', 422) ('fprintf', 381) ('ylabel', 346)
('sqrt', 346) ('exp', 268) ('sin', 250) ('randn', 250)
('imshow', 236) ('cos', 235) ('xlabel', 223) ('reshape', 219)
('floor', 187) ('diag', 176) ('eye', 162) ('wrcoef', 161)
('log', 158) ('num2str', 156) ('rand', 152) ('axis', 149)
('repmat', 147) ('colormap', 144) ('linspace', 136) ('double', 128)
('get', 128) ('norm', 123) ('wcodemat', 120) ('alphaall', 120)
('isempty', 114) ('fftshift', 111) ('imread', 110) ('sort', 109)
('fft', 109) ('log10', 108) ('load', 103) ('uint8', 103)
('isfield', 99) ('strcmp', 99) ('while', 91) ('round', 90)
('inv', 88) ('close', 72) ('transpose', 72) ('real', 71)
('power', 71) ('std', 66) ('elseif', 64) ('fgetl', 64)
('mod', 63) ('contour', 62) ('for', 62) ('sign', 59)
('fft2', 56) ('meshgrid', 56) ('mvnrnd', 53) ('xlim', 50)
('stem', 50) ('sim', 48) ('fopen', 48) ('ceil', 47)
('str2num', 47) ('legend', 46) ('wavedec', 46) ('detcoef2', 43)
('wavefun', 42) ('ifft2', 42) ('uimenu', 40) ('cumsum', 39)
('freqz', 38) ('wavedec2', 38) ('tan', 37) ('wrcoef2', 37)
('text', 34) ('ifft', 34) ('sinh', 32) ('clabel', 32)
('betaall', 32) ('fliplr', 31) ('findobj', 31) ('not', 30)
('imwrite', 30) ('strcat', 30) ('conv', 30) ('randperm', 30)
('fclose', 29) ('intersect', 29) ('setdiff', 29) ('fix', 28)
[Finished in 0.8s]
代码:
#coding=utf-8
import os
import re
fundict = {}
invalidlist = set()
for filename in os.listdir("./"):
if not filename.endswith("m"):
continue
# 文件名不是系统函数
invalidlist.add(filename[0:-2])
for line in open(filename):
comments = line.find('%')
if comments >= 0:
line = line[0:comments]
# function xxx不是系统函数
result = re.findall(r'function\s([A-Z_a-z0-9]+)\s*\(',line)
if len(result):
invalidlist.add(result[0])
continue
# 被赋过值的是变量不是系统函数
result = re.findall(r'([A-Z_a-z0-9]+)\s=',line)
if len(result):
invalidlist.add(result[0])
result = re.findall(r'([A-Z_a-z0-9]+)\s*\(',line)
if len(result) != 0:
for foo in result:
# 长度小于3,有大写或_的不是系统函数
if len(foo) <= 2 or len(re.findall('[A-Z_]',foo)) or foo in invalidlist:
continue
if fundict.has_key(foo):
fundict[foo] += 1
else:
fundict[foo] = 1
for key in fundict:
if key in invalidlist:
fundict[key] = -1
dict= sorted(fundict.iteritems(), key=lambda d:d[1], reverse = True)
for i in range(0,100):
if (i+1)%4:
print dict[i],
else:
print dict[i]
|
|