How to pick next value from vectors?
15 次查看(过去 30 天)
显示 更早的评论
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?
采纳的回答
Jos (10584)
2013-3-4
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 个评论
Jan
2013-3-5
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)).
更多回答(2 个)
Jan
2013-3-4
编辑:Jan
2013-3-5
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 个评论
shariq khan
2018-12-3
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
2018-12-3
编辑:shariq khan
2018-12-3
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
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Matrix Indexing 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!