~EDITED'
Hi there, I have a long matrix 1000 x 34 want to do the cumulative multiplication left to right to give a 1000 x 1 matrix then the sum of the multiplication going downwards. So like a sum function but multiplying each element going sideways then downwards.
EDITED THIS ANSWER HAS BEEN ANSWERED but need a follow on answer...

 Akzeptierte Antwort

Oleg Komarov
Oleg Komarov am 6 Jun. 2012

1 Stimme

sum(cumprod(A))

2 Kommentare

Mate 2u
Mate 2u am 6 Jun. 2012
What if their are zeros. Is there a line code to change all zeros to 1s?
Walter Roberson
Walter Roberson am 6 Jun. 2012
T = A;
T(T==0) = 1;
sum(cumprod(T))

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Walter Roberson
Walter Roberson am 6 Jun. 2012

0 Stimmen

If the numbers are strictly positive, you could log() and cumsum() and exp() the result.

Kategorien

Mehr zu Entering Commands finden Sie in Hilfe-Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by