matlab中sum函数求和等问题时,如1+2+……+100000,Matlab中为何用sum要比for快很多,sum函数的代码是怎样的,里面没有用到循环吗?
来源:学生作业帮助网 编辑:作业帮 时间:2024/06/17 20:32:56
![matlab中sum函数求和等问题时,如1+2+……+100000,Matlab中为何用sum要比for快很多,sum函数的代码是怎样的,里面没有用到循环吗?](/uploads/image/z/1244010-66-0.jpg?t=matlab%E4%B8%ADsum%E5%87%BD%E6%95%B0%E6%B1%82%E5%92%8C%E7%AD%89%E9%97%AE%E9%A2%98%E6%97%B6%2C%E5%A6%821%2B2%2B%E2%80%A6%E2%80%A6%2B100000%2CMatlab%E4%B8%AD%E4%B8%BA%E4%BD%95%E7%94%A8sum%E8%A6%81%E6%AF%94for%E5%BF%AB%E5%BE%88%E5%A4%9A%2Csum%E5%87%BD%E6%95%B0%E7%9A%84%E4%BB%A3%E7%A0%81%E6%98%AF%E6%80%8E%E6%A0%B7%E7%9A%84%2C%E9%87%8C%E9%9D%A2%E6%B2%A1%E6%9C%89%E7%94%A8%E5%88%B0%E5%BE%AA%E7%8E%AF%E5%90%97%3F)
matlab中sum函数求和等问题时,如1+2+……+100000,Matlab中为何用sum要比for快很多,sum函数的代码是怎样的,里面没有用到循环吗?
matlab中sum函数
求和等问题时,如1+2+……+100000,Matlab中为何用sum要比for快很多,sum函数的代码是怎样的,里面没有用到循环吗?
matlab中sum函数求和等问题时,如1+2+……+100000,Matlab中为何用sum要比for快很多,sum函数的代码是怎样的,里面没有用到循环吗?
下面是matlab中sum函数的代码,可以看出里面也是用for循环实现的~
function s = sum(A,dim)
%SUM Sum of the elements.
% For vectors,SUM(X) is the sum of the elements of X.
% For matrices,SUM(X) or SUM(X,1) is a row vector of column sums
% and SUM(X,2) is a column vector of row sums.
%
% See also SYM/PROD.
% Copyright 1993-2008 The MathWorks,Inc.
if isscalar(A) && strcmp(class(A.s),'maplesym')
if nargin == 1
s = sym(sum(A.s));
else
s = sym(sum(A.s,dim));
end
elseif nargin == 1 && any(size(A) == 1)
s = sym(0);
for k = 1:numel(A)
s = s + A(k);
end
elseif nargin == 1 || dim == 1
s = sym(zeros(1,size(A,2)));
for i = 1:size(A,1)
s = s + A(i,:);
end
else
s = sym(zeros(size(A,1),1));
for j = 1:size(A,2);
s = s + A(:,j);
end
end