How can I get the number of values within a range?
7 次查看(过去 30 天)
显示 更早的评论
Hi, I am trying to get the number of values within a range, but this range is moving. For example, I have a value a as the center of my range. So I define my range as a+std. So I get how many values are within such a range. Then I move the range by a shift, such as my new range si (a+shift)+std. The next range will be (a+2shift)+std, and so on. What I have in my code is the following:
lo_edge=center_range-std;
hi_edge=center_range+std;
bunchcenter=center_range;
kk=0;
while bunchcenter<colum_of_int(end)
kk=kk+1
bunchcenter=center_range+kk*shift;
number_values= colum_of_int>=lo_edge & column_of_int<=hi_edge;
end
I would be thankful to have some help.
2 个评论
Luca Ferro
2023-6-2
编辑:Luca Ferro
2023-6-2
so what is the question? is your code not working? if so please describe the results you get and the desired result you would want. Also, if you can, share the data as well
回答(1 个)
Pramil
2023-6-2
编辑:Pramil
2023-6-2
Your code is almost correct. You just need to update the values of lo_edge and hi_edge inside the loop to reflect the new range. Here is the updated code:
lo_edge = center_range - std;
hi_edge = center_range + std;
bunchcenter = center_range;
kk = 0;
while bunchcenter < colum_of_int(end)
kk = kk + 1
bunchcenter = center_range + kk * shift;
lo_edge = bunchcenter - std; % update lo_edge
hi_edge = bunchcenter + std; % update hi_edge
number_values = colum_of_int >= lo_edge & colum_of_int <= hi_edge;
num_values_within_range(kk) = sum(number_values);
end
Hope it helps :)
1 个评论
Dyuman Joshi
2023-6-2
Note - Do not use the names of inbuilt function as names for variables. It is not a good practice. Either capitalize std or better, rename it completely.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Logical 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!