Detecting Remainder Starts and Ends when Gaps are Present

2 次查看(过去 30 天)
Say I have an array known as divideRem that is a result of using rem(A,B) where A is a vector that is always counting up but contains gaps in certain places that have no set gap size such that:
A= [2821,2822,2823,2824,2825,2827,2830,2831,2832,2836,2839,2841,2842,2843,2844,2845,2861,2862,2863,2864,2865,2866,2867,2881,2885,2888,2891,2892,2893,2894,2901,2921,2922,2923,2924,2925];
B=10;
divideRem=rem(A,B)
%thus:
% divideRem=[1,2,3,4,5,7,0,1,2,6,9,1,2,3,4,5,1,2,3,4,5,6,7,1,5,8,1,2,3,4,1,1,2,3,4,5];
What is the most effective way to detect/find where the start (aka divideRem==1 or smallest value that is not 0) and end of the repeating series (highest value or divideRem==0) that occurs in divideRem such that the resulting truth vectors are found to be:
divRemStart=[1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,1,1,0,0,0,0];
divRemEnd=[0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,1,1,0,0,0,0,1];
Notes:
  • 1 may not always be the start (as seen above),
  • 0 might not always be the end (as seen above),
  • and that if (A(i)-A(i+1)>10), the divideRem(i) and divideRem(i+1) will not be part of the same start/end set;
The end goal is to create start/end sets of equal sizes.
Any ideas?

回答(0 个)

类别

Help CenterFile Exchange 中查找有关 MATLAB 的更多信息

产品


版本

R2016b

Community Treasure Hunt

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

Start Hunting!

Translated by