TA的每日心情 | 开心 2019-11-19 15:19 |
|---|
签到天数: 1 天 [LV.1]初来乍到
|
你这A序列里面有形如'a,b,c,0,d,e...'这种情形中的0怎么算?算分割开'a,b,c'与'd,e'还是直到连续出现多个0才视为分割?
% l+ a9 L' W4 O, S' B我加了个Limit 数值,连续出现多个零时才会分割" t. Z5 x. X, H4 k& O2 y+ p$ N7 _
结果Result 与B数组一致( B, n @$ O6 [; J2 P( F2 P$ @
Limit = 10;% W* ?# J1 f# ^/ v9 t4 _6 E
idx = find(A~=0); K$ ~3 {( N3 t' @' j
IDX = diff(idx);
2 {$ b; v# b$ gStarting = idx( [1; find(IDX>Limit) + 1] );
* O' k! B6 {: A" V. D7 pEnding = idx( [find(IDX>Limit); end] );2 w0 I3 V( u4 ?$ E* C' o0 p" O5 a. U) I
Length = max( Ending - Starting + 1 );: `6 T! S- T& C3 r, \+ a7 g3 u ]% V; f
temp = arrayfun(@(ii) [A(Starting(ii):1:Ending(ii));zeros(Length + Starting(ii) - Ending(ii) - 1,1)],...! R/ Q- [ Q* p7 ^ [; |) ~
[1:1:numel(find(IDX>Limit))+1],'UniformOutput',false);
1 E+ H' x) [1 L) ^Result = [temp{:}];4 [6 J6 }1 h) c$ L" \
disp( max( max(abs(Result - B)) ) ) |
|