Une idée :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| trajets = [1;1;1;1;1;1;1;1;1;5;13;13;8;9;7;4;2;5;5;5;5;5;5;5;5;5;5;5;5;5;5;5;5;2;6;7;8;9;12;4;8;8;8;8;8;8;8;8;8;8];
idx = [trajets(1:end-1) == trajets(2:end) ; 1];
largeur_mini_plateau = 4;
for n = 1:largeur_mini_plateau-1
idx = strrep(idx.', [0 ones(1,n) 0], [0 zeros(1,n) 0]);
end
trajets_lisse = trajets(:).*idx(:);
trajets_lisse_final = trajets_lisse;
while any(trajets_lisse_final==0)
idx2 = find(trajets_lisse_final==0);
trajets_lisse_final(idx2) = trajets_lisse_final(idx2-1);
end
[trajets idx(:) trajets_lisse trajets_lisse_final]
figure
p = plot(1:numel(trajets), trajets, 'ro', 1:numel(trajets_lisse_final), trajets_lisse_final, 'b-*');
legend(p, {'trajets' 'trajets lisse final'}) |
Ce qui renvoi pour [trajets idx(:) trajets_lisse trajets_lisse_final] :
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
1 0 0 1
5 0 0 1
13 0 0 1
13 0 0 1
8 0 0 1
9 0 0 1
7 0 0 1
4 0 0 1
2 0 0 1
5 1 5 5
5 1 5 5
5 1 5 5
5 1 5 5
5 1 5 5
5 1 5 5
5 1 5 5
5 1 5 5
5 1 5 5
5 1 5 5
5 1 5 5
5 1 5 5
5 1 5 5
5 1 5 5
5 1 5 5
5 0 0 5
2 0 0 5
6 0 0 5
7 0 0 5
8 0 0 5
9 0 0 5
12 0 0 5
4 0 0 5
8 1 8 8
8 1 8 8
8 1 8 8
8 1 8 8
8 1 8 8
8 1 8 8
8 1 8 8
8 1 8 8
8 1 8 8
8 1 8 8
Partager