How to pick next value from vectors?

15 Ansichten (letzte 30 Tage)
Teemu
Teemu am 4 Mär. 2013
Bearbeitet: shariq khan am 3 Dez. 2018
I have a cumulative vector, size is about 200. I want to pick up that index where value is 0,5 or value which is next to it. For example (0.1, 0.23, 0.42, 0.49, 0.52, 0.56,...), so i want to pick up index which corresponding to value 0.52. How can I do it?
  3 Kommentare
Teemu
Teemu am 5 Mär. 2013
Minimal distance, in this case it will be 0.49
Teemu
Teemu am 5 Mär. 2013
actually I need both

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Jos (10584)
Jos (10584) am 4 Mär. 2013
Here is one approach:
v = [0.1 0.23 0.4 0.52 0.56 1.1]
idx = find(v >= 0.5,1,'first')
v(idx)
  8 Kommentare
Jan
Jan am 5 Mär. 2013
Please, Teemu, read my answer below. There you find the code to pick the element with the minimal distance. It is the 2nd line and the index is the 2nd output of min(abs(v - 0.5)).
Teemu
Teemu am 5 Mär. 2013
Sorry I didn't noticed that, I thought it was answer for next index. Thanks for your patience.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (2)

Jos (10584)
Jos (10584) am 5 Mär. 2013
To do this for multiple values, take a look at my function NEARESTPOINT:

Jan
Jan am 4 Mär. 2013
Bearbeitet: Jan am 5 Mär. 2013
v = [0.1 0.23 0.4 0.52 0.56 1.1];
[absdist, nearest] = min(abs(v - 0.5)); % **SOLUTION IS HERE** !!!
if absdist == 0 % or: <= eps(v(index))
following = index;
else
following = index + 1;
end
nearestValue = value(nearest);
followingValue = value(following);
  2 Kommentare
shariq khan
shariq khan am 3 Dez. 2018
what if I need next larger value? consider same data but my value at specific index is nil (or no value from dataset) but now I want to find if there is any value next to that specific value in the dataset
shariq khan
shariq khan am 3 Dez. 2018
Bearbeitet: shariq khan am 3 Dez. 2018
I think I found answer to my problem
Problem - all vectors are of same length
x = [some values]
t = [some values]
x1 = 0.9*max(x);
find t value that corresponds to x1 value
if not find the closest value
solution : A lot from @jan ans
[answer,index] = min(abs(x - x1))
t1(that is to be determined) = t(index);
I hope it helps to solve people facing specific problem

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Matrix Indexing finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by