Info

This question is closed. Reopen it to edit or answer.

How can i make my unique search function work correctly?

1 view (last 30 days)
I have a unique sort function to search an array, and find at what points the data values change. Unfortunately it only works for data values that are increasing, and intermittently. It does not count all of the values.
[~,T] = unique(Torque,'first'); [T] = sort(T,'ascend');
Example Array [0 0 1 2 3 2 1 0 0 0 10 20 30 20 10 0 0 0 ]
I would like it to give me the line # everytime the value in the area changes from the previous one, and ideally set it for what increment to look for. Thanks, any help is appreciated.
  2 Comments
Jan
Jan on 19 Jun 2013
Edited: Jan on 19 Jun 2013
I do not understand the question. Could you provide the wanted result for your example array?
Roger Stafford
Roger Stafford on 20 Jun 2013
Like Jan and Cyclist I do not understand your question, Barnabas. Your statement "give me the line # everytime the value in the area changes from the previous one" seems totally unrelated to the code you exhibit. Do "line #"and "value in the area" apply to the 'Torque' array or to the 'T' array of indices? If you are talking about the original 'Torque' array and you want to see the points in it where a change occurs, you should be applying the 'diff' function to it, as Cyclist said, something like:
diff(Torque) ~= 0
which would give you a list of trues and falses indicating changes or lack thereof. If you do a 'find' function on this list it will give you the addresses of where all the changes are occurring.
See if you can't come up with a much more detailed explanation of what you are seeking.

Answers (1)

the cyclist
the cyclist on 20 Jun 2013
I am not sure I fully understand your question, and agree with Jan's suggestion in his comment.
That being said, I think you might find the diff() command might do exactly what you want.

Community Treasure Hunt

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

Start Hunting!