本周文件交换选择

我们最好的用户反馈

“最活跃/互动”文件交换条目

汪东城他本周的选择是时间序列信号的命令行峰值拟合器通过汤姆O 'Haver

继续庆祝MATLAB中心15岁生日上一周的博客通过肖恩,我想把重点放在人们通过File Exchange条目进行的所有伟大的交互上。虽然你可能不认为File Exchange是下一个大型社交网络,但人们已经通过条目的评论和评级部分进行了合作和交流。当我看到一个有很多注释的File Exchange条目时,我倾向于认为其他用户对该文件很感兴趣。如果我也看到了很多来自文件作者的回复,这意味着作者积极地参与了改进和帮助人们使用该文件。如果条目有很多更新,这也意味着作者正在积极地维护该文件。

所以,我想看看哪些文件在作者和用户之间有最多的交互。免责声明:这里使用的并非所有指标都是纯定量的。我已经介绍了一些定性的蒙混因素。

的数据

我用蛮力的方法收集数据,当然是用MATLAB。我浏览了所有可能的文件交换id,并抓取了每个网页的评论和更新。

负载FEX

下面是前几个条目的样子。

FEX (1:5,:)
ans =名字FEXID作者评论更新  _________________________ _____ ____________________ ___________ ___________ ' central_diff。m' 12 '罗伯特·坎菲尔德' [3x4表][5x3表]'interpsinc。m' 13 'Michael Minardi' [1x4表][1x3表]'Polybase' 15 'Giampiero Campa' [8x4表][7x3表]'Toolbox BOD Version 2.8' 16 'Gert-Helge Geitner' [1x4表][7x3表]'connectnames。m' 17 '道格拉斯哈里曼' [1x4表][0x3表]

以下是第一个条目的注释(central_diff.m,也就是几周前)。

FEX。评论{1}
ans =日期名字评级发表评论  __________ ___________________ _____________________________________________________________________ ______ 2004-09-16“godlove njie teku ' ' ' 4 2006-08-09 ' Shyang-Wen Tseng) ' ' < p >这是一个非常好的和有用的附加功能。谢谢你!

' 4 2007-08-06 'Alvaro Valcarce' '

我认为第98行应该是(注意“=”符号)

…' 4

以及该条目的更新。

FEX。更新{1}
ans =日期版本描述  __________ _______ __________________________________________________________________________ NaT”< p > < / p >更新描述的NaT”< p > < / p >描述的NaT”“< / p > < p >更新描述“2001-08-21”的< p > < / p >更新2015-10-01 ' 2.0 ' ' < p >二阶准确向前和向后差分公式是你……”

度规

为了帮助我找到“交互”最多的条目,我首先从数据中计算了评论和更新的数量。

FEX。NumComments = cellfun(@height, fx . comments);FEX。NumUpdates = cellfun(@height, fx . updates);

接下来,我还想知道每个条目的所有评论,有多少是该条目的作者写的。

FEX。NumAuthorComments = cellfun(@(a,c) nnz(strcmp(a,c. name)),...FEX。作者,FEX.Comments);FEX。NumUserComments = FEX。NumComments - flex . numauthorcomments;

大多数评论

让我们看看哪篇文章得到了最多的评论。

FEX = sortrows;“NumComments”“下”);barh (FEX.NumComments(10: 1:1)标题(“评论数量”将文件名截短至前20个字符(用于标记)fexNames = cellfun (@ (x) x (1: min(20、长度(x))), FEX.Name (10: 1:1),“UniformOutput”、假);%轴属性Ax = gca;斧子。YLim = [0 11];斧子。YTickLabel = fexNames;斧子。TickLabelInterpreter =“没有”;斧子。YTickLabelRotation = 30;

毫不奇怪,export_fig

大多数的更新

那么最多的更新次数呢?

FEX = sortrows;“NumUpdates”“下”);barh (FEX.NumUpdates(10: 1:1)标题(“更新次数”将文件名截短至前20个字符(用于标记)fexNames = cellfun (@ (x) x (1: min(20、长度(x))), FEX.Name (10: 1:1),“UniformOutput”、假);%轴属性Ax = gca;斧子。YLim = [0 11];斧子。YTickLabel = fexNames;斧子。TickLabelInterpreter =“没有”;斧子。YTickLabelRotation = 30;

“DICOM - NIfTI转换器”就拍export_fig

原作者评论比例最高

查看原作者参与用户评论的程度的一种方法是查看作者评论的百分比。(是的,作者可以在没有对文件交换的评论做出实际回应的情况下大量参与其中。他/她可以选择通过电子邮件回复或简单地更新文件。)为了解释评论数量较少的偏见,我包含了一个任意的20条评论的资格限制。

FEX。AuthorCommentRatio = FEX。NumAuthorComments ./ fx . numcomments;修正0/0 (-> NaN)为0fx . authorcommentratio (isnan(fx . authorcommentratio)) = 0;只查看有20条或更多评论的条目Fex = Fex;NumComments >= 20,:);FEX = sortrows;“AuthorCommentRatio”“下”);FEX (1:5, {“名字”“作者”“NumComments”“NumAuthorComments”“NumUpdates”})
ans =名字作者NumComments NumAuthorComments NumUpdates  ___________________________________ _________________________ ___________ _________________ __________ ' ipf (__arg1、最长长度,arg4)“汤姆O 'Haver 23日14 39的nth_element“李彼得26日14 7的树控件的用户界面“罗宾杜松子酒”29日15 6“基于小波的图像分割“Ashutosh Kumar Upadhyay”23日11日16“iPeak ' '汤姆O 'Haver ' 36 17 30

干得好!

让我添加另一个任意限定条件,即最少更新10次。

Fex = Fex;NumUpdates >= 10,:);FEX (1:5, {“名字”“作者”“NumComments”“NumAuthorComments”“NumUpdates”})
ans =名字作者NumComments NumAuthorComments NumUpdates  __________________________________________________ _________________________ ___________ _________________ __________ ' ipf (__arg1、最长长度,arg4)“汤姆O 'Haver 23日14 39的基于小波的图像分割“Ashutosh Kumar Upadhyay”23日11日16“iPeak‘汤姆O 'Haver 36 17 30的命令行时间序列信号的峰值钳工‘汤姆O 'Haver 120 54 41的快速双边滤波器库纳尔•乔杜里的20 ' ' 9 14

哇,汤姆在上面三次了!!我对第4条有点好奇,它有120条评论和41次更新。让我们仔细看看这些评论和更新的时间。

处理第4个条目将注释分成用户注释和作者注释。authorCommentID = strcmp(fx . author {4}, fx . comments {4}.Name);userComments = fx . comments {4}(~authorCommentID,:);authorComments = fx . comments {4}(authorCommentID,:);%创建图形h1 = scatter(datenum(userComments. date),ones(1,height(userComments)),...“MarkerFaceColor”“b”“MarkerEdgeColor”“没有”“MarkerFaceAlpha”, 0.25);持有h2 = scatter(datenum(authorComments. date),1.5*ones(1,height(authorComments)),...“MarkerFaceColor”“r”“MarkerEdgeColor”“没有”“MarkerFaceAlpha”, 0.25);h3 = plot([fx . updates {4}.]日期FEX.Updates {4} .Date)”,...repmat([0, 0.5] 1高度(FEX.Updates {4})),“颜色”,(。3.。7。3.],...“DatetimeTickFormat”“哦哦”);持有%轴属性Ax = gca;斧子。YLim = [0 2];斧子。YTick = [1 1.5];斧子。YTickLabel = {“用户”“作者”};斧子。YTickLabelRotation = 60;斧子。YGrid =“上”;标题({FEX.Name {plotID}, FEX.Author {plotID}}) ylabel (“评论”)包含(“日期”)传说((h1, h2, h3 (1)),“用户评论”作者评论的“更新”

我们可以看到用户和Tom的评论很平衡。更新似乎是在一个良好的定期间隔,更新发生在最近。这表明Tom一直积极参与与用户的交互,并保持文件的更新。

谢谢你,Tom,你是MATLAB中心和文件交换的好公民!是你们让这个社区蓬勃发展。

评论

试一试,让我们知道你的想法在这里或者留下评论汤姆。




发布与MATLAB®R2016a

|
  • 打印
  • 发送电子邮件

评论

如欲留言,请点击在这里登录您的MathWorks帐户或创建一个新帐户。