71 lines
2.0 KiB
Mathematica
71 lines
2.0 KiB
Mathematica
![]() |
%%************************<EFBFBD><EFBFBD><EFBFBD>жϸ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͺ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>****************************%%
|
|||
|
%%=============================<EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><EFBFBD>===================================%%
|
|||
|
% J: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĸ<EFBFBD><EFBFBD>ŵ㼯<EFBFBD><EFBFBD>
|
|||
|
%Type: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
%%========================================================================%%
|
|||
|
function Type = JudgeTypeJam(J)
|
|||
|
J = sort(J,'ascend');
|
|||
|
len_J = length(J);
|
|||
|
c1 = 1;
|
|||
|
band = cell(0,0);
|
|||
|
mono_d = cell(0,0);
|
|||
|
mono = [];
|
|||
|
if len_J == 0
|
|||
|
Type = 'No jam';
|
|||
|
elseif len_J <= 3 %&& len_J > 0 %% <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><EFBFBD>3<EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɢ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߶<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
if len_J == 1
|
|||
|
Type = 'mono';
|
|||
|
else
|
|||
|
if len_J == 2
|
|||
|
if J(2)-J(1) == 1
|
|||
|
Type = 'mono';
|
|||
|
else
|
|||
|
Type = 'multi';
|
|||
|
end
|
|||
|
else
|
|||
|
if J(3) - J(1) == 2
|
|||
|
Type = 'mono';
|
|||
|
else
|
|||
|
Type = 'multi';
|
|||
|
end
|
|||
|
end
|
|||
|
end
|
|||
|
else
|
|||
|
while c1 < len_J
|
|||
|
c2 = 0;
|
|||
|
while (c1 + c2 + 1 <= len_J && J(c1) + c2 + 1== J(c1 + c2 + 1))
|
|||
|
c2 = c2 + 1;
|
|||
|
end
|
|||
|
if(c2 > 2)
|
|||
|
band = [band;(J(c1:1:c1+c2))]; %% <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>㳬<EFBFBD><EFBFBD>3<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ΪƵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
end
|
|||
|
if (c2 == 2 || c2 == 1)
|
|||
|
mono_d = [mono_d;(J(c1:1:c1+c2))]; %% Ƶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɢ<EFBFBD>ĵ<EFBFBD><EFBFBD><EFBFBD>
|
|||
|
end
|
|||
|
if c2 == 0
|
|||
|
mono = [mono,J(c1)];
|
|||
|
end
|
|||
|
c1 = c1 + c2 +1;
|
|||
|
if c1 == len_J && J(len_J-1) + 1 ~= J(len_J)
|
|||
|
mono = [mono,J(len_J)];
|
|||
|
end
|
|||
|
end
|
|||
|
num_band = numel(band);
|
|||
|
num_mono_d = numel(mono_d);
|
|||
|
num_mono = length(mono);
|
|||
|
num_multi = num_mono + num_mono_d;
|
|||
|
if num_band ~= 0
|
|||
|
if num_multi == 0
|
|||
|
Type = 'band';
|
|||
|
else
|
|||
|
if num_multi >1
|
|||
|
Type = 'band_multi';
|
|||
|
else
|
|||
|
Type = 'band_mono';
|
|||
|
end
|
|||
|
end
|
|||
|
else
|
|||
|
Type = 'multi';
|
|||
|
end
|
|||
|
end
|
|||
|
%% end
|