computing the cumulative matrix with some conditions
Mostrar comentarios más antiguos
Is there a very concise way to code up computing the cumulative matrix of the following matrix on each column given the following condition that if the element of the column is 1 it adds 0. If it would be 2 it adds 2, if it is 3 it adds to the previous value 4 and if the element of the matrix is 4 it add to the previous value -5
AR =
1 1 1 1 1 1
1 1 1 1 1 1
1 1 2 1 2 1
1 1 2 1 2 2
1 1 1 1 1 1
1 1 1 1 1 1
2 2 2 2 2 2
2 2 2 2 2 2
1 1 1 1 1 1
1 1 1 1 1 1
1 2 2 2 2 2
2 2 2 2 2 2
1 1 1 1 1 1
1 1 1 1 1 1
2 2 2 2 2 2
2 2 1 2 2 2
1 1 1 1 1 1
1 1 1 2 1 1
2 2 1 2 2 2
2 2 1 2 2 2
1 1 1 1 1 1
1 1 1 1 1 1
2 1 2 2 2 1
Respuestas (2)
Image Analyst
el 6 de Mzo. de 2021
0 votos
Why can't you just make up a look up table like [0, 2, 4, -5] and so on. Then just do a simple for loop for the various conditions such as
- adding the number from the look up table to the current value, and replacing the current value with it, or
- adding the number from the look up table to the "previous" element's value
for case #2, I'm not sure whether the result replaces the current element or the previous element.
2 comentarios
Zahra Sheikhbahaee
el 6 de Mzo. de 2021
Image Analyst
el 7 de Mzo. de 2021
That's doing a pure assignment to the number you specify. I thought you wanted to add some numbers together.
Explain exactly, with a sample array, what "it adds to the previous value" means to you.
Also explain what "it adds 2" means to you.
Matt J
el 7 de Mzo. de 2021
Is this what you want?
T=[0, 2, 4, -5] ;
result=cumsum(T(AR))
Categorías
Más información sobre Logical en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!