How to write cumulative product function

Hi
I am trying to implement cumproduct without using built-in function. Below is my test code . I need help to implement "My Test code " like built-in cumprod([1 1 2 : 5]).
Thank you!!
% Built-in
A = cumprod([1 1 2 : 5])
% A
%------+
% 1
% 1
% 2
% 6
% 24
% 120
% My Test code ,
A1 = 1;
for i = 1 :5
A1 = A1 * i;
fprintf('%10d|%10d|\n',i,A1);
end
A1
-----+
1|
2|
6|
24|
120|

 Accepted Answer

Torsten
Torsten on 16 Mar 2022
Edited: Torsten on 16 Mar 2022
m = 10;
v = [1 1 2:m];
pcum = cumproduct(v)
function pcum = cumproduct(v)
n = numel(v);
pcum = zeros(n,1);
pcum(1) = v(1);
for i = 2:n
pcum(i) = pcum(i-1)*v(i);
end
end

3 Comments

Thank you, works as expected!!
Any suggestion without loop or make it faster here ? !!
Recursive call ?
Yes, would nice if you can share snippet !!
Thank you

Sign in to comment.

More Answers (0)

Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

Products

Release

R2021b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!