我正在研究有关高斯消除的代码,其中一个要求是计算矩阵加法的数量和函数中使用的矩阵乘法的数量。如果我不能使用“profile”命令,那么我的代码作为计数器应该具有什么?
Matlab是否具有某种内置函数来计算函数中使用的矩阵加法/乘法的数量?
谢谢。
答案 0 :(得分:0)
不,不再了。它曾经有一个 flops 函数来计算代码中的浮点数运算,但这在很多年前被删除了。由于 flops 已过时的原因,您可以阅读this。
你确定你需要Matlab这样做吗?如果你的代码并不复杂,你可以通过手工计算操作数来给出一个很好的估计值。
答案 1 :(得分:0)
为您需要计算的操作创建一个包装函数,并使它们保持计数。期待很多开销;) 添加一些逻辑以重置和/或显示结果计数。
例如乘法:
function c = mytimes(a,b)
persistent count;
if nargin==1
switch a
case 'reset'
c = count;
count = 0;
case 'show'
c = count;
otherwise
error('wrong input');
end
end
c = a*b;
if isempty(count)
count = 1;
else
count = count+1;
end
end