Bonjour,

Je vous propose un nouvel élément à utiliser : Taille et nombre d'éléments non zéros dans un vecteur

Voici un code MATLAB qui permet de calculer la taille et le nombre d'éléments différents de zéros dans un vecteur.

Exemple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
>> a  = [1 0 0 0 1 1 1 1 1 1 0 1 0 1 1 ] ;
Taille des éléments différents de zéros est : 1 6 1 2
Leur nombre = 4
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
function [snz, nbnz] = nonzeros2(vin)
% Description
% Fonction permettant de retourner le nombre d'éléments différents de zéros
%
% vin : vecteur d'entrée
% snz : taille des éléments différents de zéros
% nbnz : nombre d'éléments différents de zéros
%
% Usage :
% >> a = [1 0 0 0 1 1 1 1 1 1 0 1 0 1 1 ] ;
% >> sz = nonzeros2(a)
%
% sz =
%     1     6     1     2
%
% >> a = [1 0 0 0 1 1 1 1 1 1 0 1 0 1 1 ] ;
% >> [sz nb] = nonzeros2(a)
%
% sz =
% 
%      1     6     1     2
% 
% nb =
% 
%      4
%
 
if nargin > 1 || nargin <= 0
    error('Bad input. see help nonzeros2 for details.');
end
 
snz = diff(find(~[0 vin 0]))-1 ;
snz = snz(snz~=0) ;
nbnz = numel(snz) ;