You have a phenomenon that produces strictly positive or negative results.
delta = [1 -3 4 2 -1 6 -2 -7];
Marching through this list from beginning to end, mark a value with -1 if it is the greatest magnitude negative yet seen (strictly greater, not equal). Mark it with a one if it has the greatest magnitude in the positive direction (strictly greater, not equal). Just use a 0 if neither of these conditions have been met.
The result for the above example would be:
result = [1 -1 1 0 0 1 0 -1]
Solution Stats
Problem Comments
4 Comments
Solution Comments
Show comments
Loading...
Problem Recent Solvers693
Suggested Problems
-
Find the numeric mean of the prime numbers in a matrix.
9174 Solvers
-
320 Solvers
-
Back to basics 13 - Input variables
396 Solvers
-
Convert a numerical matrix into a cell array of strings
2559 Solvers
-
Find out sum and carry of Binary adder
1843 Solvers
More from this Author51
Problem Tags
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
The phrasing might be a bit ambiguous, as magnitude swing could also be thought of as delta(i-1)-delta(i) instead of just delta(i). Nonetheless fun problem!
Nice question.
Nice problem
Agreed with first comment, it would be helpful to have more specificity with definition of magnitude "swing" ...perhaps the word "swing" is confusing because it implies some kind of reference point or change from one point to the next, when all that's being considered is the magnitude of each progressive value in comparison to previous max_magnitudes(+ and -)