该程序计算MATLAB文件的拖布作为脚本或函数。通过扫描和解析MATLAB代码的每一行,我们基于矩阵大小推断浮点操作。计算算术运算,矩阵分解,基本函数和常用统计功能。该程序支持用户定义的新规金宝app则,它可以通过电子表格覆盖我们的预定规则。有关软件使用情况的详细信息,请参阅随附的PDF文档“FLOPS用户指南”。
用法:
步骤1:在脚本或函数中编写MATLAB代码,例如fileName.m。
步骤2:将所有变量保存在垫文件中。例如:
保存matfilename.mat.
第3步:配置MATLAB代码。
简介
(在此处运行Matlab代码,例如filename(a,b,c,d))
profileStruct =概要文件(“信息”);
步骤4:通过调用该功能计数拖鞋
拖鞋(文件名,matfilename,profilebruct);
解析和计数结果将显示在屏幕上,并发送到输出参数。
挂钱(2021)。计算浮点操作(拖鞋)(//www.tatmou.com/matlabcentral/fileexchange/50608-counting-the-floating-point-operations-flops), MATLAB中央文件交换。检索。
嗨dianxin,
我在Windows计算机上运行了代码,程序始终生成500140拖鞋。它似乎没有不一致。您可能希望检查工作区中的变量。FLOP计数取决于存储在当前工作区中的实际变量。
嗨钱挂,我对代码感到困惑。我试图测试这里提供的代码,我所做的是什么
x = randn(100,3);Y =(x * [1 2 3]'+ Randn(100,1))> 0;
简介
[Beta_draw, M,我]= exampleFu (Y、X);
ProfileRuct_2 =配置文件('INFO');
[flopTotal_2, Details_2] =失败(“exampleFu”、“exampleFunMa”,profileStruct_2);
关闭
x = randn(100,3);Y =(x * [1 2 3]'+ Randn(100,1))> 0;
简介
[beta_draws,me1,me2] = emplyfun(y,x);
profileStruct =概要文件(“信息”);
[flopTotal_1, Details_1] =失败(“exampleFun”、“exampleFunMat”,profileStruct);
关闭
exampleFun和exampleFu与exampleFun完全相同。m你提供了测试,但flopTotal_1是不同的flopTotal_2(500140为flopTotal_2, 91986为flopTotal_1),我认为应该等于?因为我保持输入大小不变,算法不变。
嗨之浩
计数器只适用于简单的MATLAB代码,而不适用于p-code或mex文件。假设你知道遗传算法的实现细节,你可以用纯m代码实现你自己版本的遗传算法,然后计算失败次数。祝你好运。
嗨钱,
感谢您开发拖鞋柜台的贡献。使用它时我有问题。我想计算我的遗传算法的潮流,我在我的脚本中使用函数ga(在matlab的最佳工具箱中)。但它不起作用。我想知道这个工具是否可以用来计算GA的拖鞋?
嗨,洁具,
似乎您正在加载垫文件,因为我看到了输出
Line 1: MATLAB 5.0 MAT-file,…
FLOPS工具仅适用于脚本或函数中的普通MATLAB代码。它无法处理垫文件。示例文件“example.m”说明了软件如何工作。谢谢。
嗨挂钱,
非常感谢您的快速回复。我确实检查了我的系统语言设置,它在美国英语环境中。此外,我还通过Matlab编辑器打开了我的代码,它用英文正确显示。我还在学校服务器(在美国 - 英语设置中)运行我的代码,同样的问题再次出现。还有其他地方我可以检查吗?提前感谢您的帮助!
亲爱的Yujie Zhao.
命令窗口中显示的输出字符取决于您的操作系统的语言设置。您可能希望尝试将我们英语设置为您的系统语言。作为诊断,您可以尝试通过MATLAB编辑器打开代码。如果代码以英语正确显示,则应在命令窗口中看到正确的字符。
嗨钱,
非常感谢您提供这个精彩的工具。我在这里得到一个问题。当我实现函数时,输出就像
第1行:MATLAB 5.0 MAT文件,平台:PCWIN64,创建:THU 9月24日13:14:20 2020 AC IM;xœãc``ØÁÄÀÀ¤9 °Bù@Åì@œ”Z’è™WÂÀ d7 õÍš ;íGéQz h Ó&qT Ë xœãc``ØÁÄÀÀ¤9 °Bù@Åì@œ”Z’è_PÂÀ d7 õMù:'gŽéíýöÝö-*¯ì¯èÄMdÙw{¿õçß×\òžÙ¿0Ìkõ°¸´¿í‹îéàÓoí¡Æ34maø™tÒ~V_êÙeý7÷ÃÄoø§5¿-Ø çϨ4kŸ×¹nÿ›yw¡³+àâ0°ý÷¶_›õ¯Û/Êá«.šx.¯k}ú˜çaû5ø6;ˆ]ÀÐ÷¥¿Ms¿B½u»ÉœMó¦Û«ŸÝ¡Zm~C=:Ø_´Óq3븺¦k×øß¿Ëùæ“®+Áþü5k]âre§ýß¿5ß&-§úrvå÷žëkx†Ä¾¾þþ9û[ÖO®_“K ~ wOdqOI³÷§AiU¶0 oß~¾oAÆß3 iaikuª¾KAþoþØ¥•“9·问题þy / oryJuY‡C
Ußsz¼¦Ei # \} y‡·.oIØ«kU ~ qurn¯•oI2+ cqºCfoUssiaIVFµ“«kU˜“¾iUuæ? UAa·mZutOþi / nh; {g8弗吉尼亚州害怕¸U··{uIdß害怕p®4œç³0xœãc``pb6æ€ò
Å3“av n-(îìéïcà”êw<¬sxīblü'$xœãc`0b6æ€ò
å3â1cp!ê
FLOPS = 61 * 0 = 0
这种类型的输出是不可读的。您能给我一些修复建议吗?
非常感谢这个工具。
非常感谢!
Zejiang,
我猜你需要提取驱动s函数的实际MATLAB代码。有时,s函数是用c之类的编译语言编写的,在这种情况下,需要用等效的MATLAB代码重新实现它。基本上,FLOPS计数只适用于简单的MATLAB代码,因为它解析算术运算符,然后估计每个运算符的FLOPS。谢谢你!
你好挂,
请问如何测量Simulink内部的SFUNCTION的拖鞋?金宝app
谢谢!
嗨强,
谢谢你的评论。您是正确的 - 矩阵大小无法更改。通过在运行代码后检查MATLAB工作区,程序获取矩阵大小。然后它根据大小信息计算闪斗。它假设变量的大小是常量,但它的值可以随着代码运行而变化。
该工具非常有用,但使用它时需要小心:不要为两个变量使用一个变量名称,尤其是具有不同的大小。例如:
= (1, 1, 1, 1, 1, 1,, 1, 1, 1);b = [1, 2, 3, 4, 5, 6, 7, 8, 9);
功能[c] = myfun1(a,b)c = a * b;结束;返回54拖鞋;
功能[c] = myfun1(a,b)c = a * b;a = [1,2,3];结束;返回18张拖鞋;
我有点困惑:你用拖鞋作为复数,而且
FLOPS通常意味着“每秒浮点运算”。
在实现这一点后,它就好了。
挂
谢谢你这么方便的工具。我用它来跟踪Riccati求解器和卡尔曼滤波器中的FLOPS。
我没有金融工具箱,所以我必须在拖鞋中改变第365行
% flopTotal = nansum(flopEachLine .* flopMultiplier);
到目前为止
flopTotal = sum(flopEachLine .* flopMultiplier, 'omitnan');
最好,
BU.
嗨穆罕默德,
非常感谢您的错误报告。FLOP COUNT软件不知道MATLAB解析代码如何,并且该软件仅识别简单的代码模式。鼓励用户简化代码,以便该软件可以识别运营商和相应的拖斗。我尽力修改软件,以便它将认识到更复杂的代码模式。
嗨挂,
谢谢你的这个有用的工具。
我注意到与Matlab评论有关的错误。
我测试了你的工具,只在脚本中输入:“x = magic(3);%+magic(3);”,我得到:“FLOPs = 9 * 1 = 9”,在这里它应该是零。
在分号和%符号之间添加一个空格作为注释后,我得到了正确的“FLOPs = 0 * 1 = 0”。
干杯,
默罕默德
达山,
感谢您对FLOPS柜台感兴趣。如果我们知道函数的理论上的FLOPS,我们可以在电子表格extendedrrules .xlsx中添加一个规则。例如,假设A是一个m × p矩阵,我们认为SVD需要2np^2+2n^3 FLOPS,我们可以在电子表格(有三列)中添加一行
第一列:圣言
第二列:2 * nrow * ncol ^ 2 + 2 * nrow ^ 3
第三列:一些用于注释的任意文本
运行该程序后,第二个输出参数“详细信息”应显示为代码的每行计数为多少拖鞋。如果软件识别扩展规则,我们应该看到“详细信息”中显示的额外拖鞋。
问候,
挂钱
嗨挂,
因为你提到这段代码不计算嵌套函数的失败,我想知道如何才能有一个工作周围,以计算失败的matlab内置函数,如null()或svd()等。谢谢你的贡献。
嗨吉拉尼,
感谢您对翻牌计数工具的兴趣。
如果算术运算是基于复数的,则可以考虑通过编辑电子表格extendedrrules .xlsx来覆盖内部规则。基本上,在电子表格的第一和第二列中重载+、-、*、/等。
或者,您可以通过重写内部规则直接修改代码。从关于线1130,有一个开关......块,其中算术运算+ - * /被定义。
嗨,挂墙,
谢谢你的好工具。当我乘以两个复数号时,它显示1张牌,实际上是6.任何想法如何解决这个问题?实际上,我的应用程序基于具有复杂值的矩阵。
再次感谢您的支持。金宝app
感谢您的宝贵和重要贡献。这对我的研究很有用。
感谢挂起您的有用代码。如果我成功发布纸质,我会引用您的代码。
嗨Alireza,
感谢您对我的代码的兴趣。当我在研究论文时,我开发了该工具。我尽力使拖鞋尽可能准确地计算。欢迎评论和错误报告,并真诚地欣赏。
至于引文,我认为文件Exchange ID和版本号对每个Matlab中央提交都是唯一的,而其他研究人员可以检索原始文件以重现结果。所以我建议引用这样的引用
钱,挂起(2015)。计算浮点操作(拖鞋),Matlab中央档案交换,No. 50608,Ver。1.0,检索2015年6月30日。
嗨挂,
谢谢你的文件。它在我的研究中非常有用。我如何引用论文中的工作?
谢谢,
Alireza.