How to count the number of times a value from a vector exceeded an interval?
2 次查看(过去 30 天)
显示 更早的评论
Dear all,
I have this vector r = [1 2 4 5 6 3 2 7] and I want to count how many times each value exceeds the interval from 4-5. More detailed, after r(5) it should count 1, after r(6) it should count 2, after r(7) it should count also 2 because it counted it before since the previous value is lower than 4 and finally after r(8) it should count 3.
Thank you very much.
1 个评论
Jan
2018-8-5
@Stergios Verros: It would help to understand your question, if you post the wanted output for the example input also.
采纳的回答
Rik
2018-8-3
编辑:Rik
2018-8-3
The rules you want are a bit unclear, but if I understand them correctly, the code below should do what you want. If not, please give the desired output as a vector, not as text.
r = [1 2 4 5 6 3 2 7];
range=[4 5];
%Mark the positions exceeding the upper value:
L2=r>range(2);%The value should be greater than the bound
L2=L2&~[true L2(1:end-1)];%The previous value should not
%Do the reverse for the lower bound
L1=r<range(1);
L1=L1&~[false L1(1:end-1)];
output=cumsum(L1|L2);
5 个评论
Image Analyst
2018-8-3
编辑:Image Analyst
2018-8-3
No, not to me. Let's say r = [11 12 14 15 16 13 12 17]. What does "how many times each value exceeds the interval from 4-5" mean. It sounds like you're wanting a histogram when you say "how many times", but what's really confusing is "the interval from 4-5". So, for my example r, do you want
- the number of values that exceed 4,
- the number of times values exceed 5, or
- the number of values that exceed 14 (which is element #4)?
Finally, what is your desired output?
Rik
2018-8-5
Did my last edit solve your question? If so, please consider marking it as accepted answer.
更多回答(1 个)
另请参阅
类别
在 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!