Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
![]() |
#1 |
高级会员
注册日期: 2019-11-21
帖子: 3,006
声望力: 66 ![]() |
![]()
我想实现一个本福德定律( http://en.wikipedia.org/wiki/Benford%27s_law )版本,该版本基本上要求数字的第一位数字来进行分布分析。
1934---> 1 0.04 ---> 4 -56 ---> 5 您如何在MATLAB中执行此操作? 回答: 您可以通过几种方法执行此操作...
在MathWorks的一个博客上已经对此主题进行了一些讨论。那里提供了一些有趣的其他解决方案。提出的一个问题是矢量化解决方案,因此我想出了一个矢量化版本: numberVector = [1934 0.04 -56]; numberStrings = cellstr(num2str(numberVector(:),16)); firstIndices = regexp(numberStrings,'[1-9]','once'); firstNumbers = cellfun(@(s,i) s(i),numberStrings,firstIndices); 更多&回答... |
![]() |
![]() |