Subtracting elements with constraints

1 visualización (últimos 30 días)
Nikolas Spiliopoulos
Nikolas Spiliopoulos el 27 de Feb. de 2017
Comentada: Nikolas Spiliopoulos el 27 de Feb. de 2017
Hi all,
I have an array A and I need to subtract the elements of each column using the cumsum function:
B=bsxfun(@minus, A(1,:), cumsum(A(2:end,:)));
However I have some constraints that should not violated (min=1.3, max=11.7) Is there any way to do the calculations within these limits?
thanks
  3 comentarios
Guillaume
Guillaume el 27 de Feb. de 2017
Editada: Guillaume el 27 de Feb. de 2017
What does "constraints that should not be violated" actually mean. What should happen to avoid violating these constraints?
Nikolas Spiliopoulos
Nikolas Spiliopoulos el 27 de Feb. de 2017
If the constraints are violated it just put the maximum or minimum value respectively! If it's within the range it does the calculations.

Iniciar sesión para comentar.

Respuesta aceptada

Stephen23
Stephen23 el 27 de Feb. de 2017
Editada: Stephen23 el 27 de Feb. de 2017
Your question is not clear where you want these constraints applied.
Option one: constrain output values:
B = bsxfun(@minus, A(1,:), cumsum(A(2:end,:)));
B = max(1.3, min(11.7, B));
Options two: constrain cumsum values:
tmp = max(1.3, min(11.7, cumsum(A(2:end,:))));
B = bsxfun(@minus, A(1,:), tmp);
  3 comentarios
Walter Roberson
Walter Roberson el 27 de Feb. de 2017
Another possibility: that at each point the sum needs to be in that range, and if adding the next element would move it out of the range then clamp it at the edge of the range, but allow the next element to move it away from the edge of the range. For example, if the lower limit was 1, then for
A = 6 2 2 2 2 -3
cummulative
C = 4 2 1 1 4
^ ^
the clamping has been applied at the ^ points, but no history of how far outside the range it would go, so the -(-3) moves it 3 away from the bottom of the range
I am not sure at the moment that a vectorized version of this approach is possible.
Nikolas Spiliopoulos
Nikolas Spiliopoulos el 27 de Feb. de 2017
thanks a lot, I want to constrain the output values!

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Loops and Conditional Statements en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by