TA的每日心情 | 开心 2019-11-19 15:19 |
|---|
签到天数: 1 天 [LV.1]初来乍到
|
你这A序列里面有形如'a,b,c,0,d,e...'这种情形中的0怎么算?算分割开'a,b,c'与'd,e'还是直到连续出现多个0才视为分割?
( r6 O5 D% g/ a/ j$ n+ ~/ K我加了个Limit 数值,连续出现多个零时才会分割& I. b4 S8 S' l2 H$ d0 O8 y' x
结果Result 与B数组一致
4 Z. H% e% A! ?7 lLimit = 10;6 |: O4 v f( O3 b
idx = find(A~=0);
+ N D2 S5 l8 j# n3 m9 YIDX = diff(idx);
7 W; ^+ I( A9 rStarting = idx( [1; find(IDX>Limit) + 1] );
' ]4 ?. E! y) V) F" bEnding = idx( [find(IDX>Limit); end] );4 U0 R$ O$ t2 B! U& ]# ~5 `9 _
Length = max( Ending - Starting + 1 );) v3 j7 `+ |% l) n6 R
temp = arrayfun(@(ii) [A(Starting(ii):1:Ending(ii));zeros(Length + Starting(ii) - Ending(ii) - 1,1)],...
3 e0 G0 e9 z' e7 n, h* ] [1:1:numel(find(IDX>Limit))+1],'UniformOutput',false);
# Y! @* V7 F7 }, b! HResult = [temp{:}];4 }) h+ z2 t' F7 U
disp( max( max(abs(Result - B)) ) ) |
|