Cumulative Summation down a matrix in loop
Afficher commentaires plus anciens
Hello!
I have 2 matrix, I would like to sum Matrix B values cummulative given condition. The condition is that it starts to sum once Matrix A = -1 and stops when Matrix A = 1 and it goes on and on all the way down to the end of the data set. Thanks for the help!
Matrix A Matrix B CumSum
0
0
0
-1 0
-1 0.02
-1 -12.09
-1 6.61
1 1.1 -4.36 CumSum
0 0
-1 0
-1 -6.8
-1 -26.87
-1 2.67
-1 -9.99
-1 9.28
-1 -3.17
1 8.6 7.39 CumSum
0
0
0
2 commentaires
Turlough Hughes
le 9 Fév 2022
Do you mean -4.36 and -26.28?
Réponse acceptée
Plus de réponses (1)
matrixA = [0 0 0 -1 -1 -1 -1 1 0 -1 -1 -1 -1 -1 -1 -1 1 0 0 0]'; % for ref
matrixB = [0 0 0 0 0.02 -12.09 6.61 1.1 0 0 -6.8 -26.87 2.67 -9-99 9.28 -3.17 8.6 0 0 0]'; % for ref
state = 0;
matrixSums = zeros(size(matrixA,1), 1);
for i = 1:size(matrixA, 1)
temp = matrixA(i);
if (temp == -1) && (state == 0)
state = 1;
cumSum = matrixB(i);
elseif (state == 1) && (temp ~= 1)
cumSum = cumSum + matrixB(i);
elseif (state == 1) && (temp == 1)
cumSum = cumSum + matrixB(i);
matrixSums(i) = cumSum;
state = 0;
end
end
outMat = [matrixA, matrixB, matrixSums]
Catégories
En savoir plus sur Matrix Indexing dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!