連続したある数値以上の要素を一つのグループとして表したい
Afficher commentaires plus anciens
A=[-210 -210 -33 -34 -33 -35 -30 -33 -210 -33 -33 -210 -210 -34 -36 -35 -210]
B=[6 2 3]
上のような1行n列のAがあったとして、-210より大きく連続しているもの(左から「-33 -34 -33 -35 -30 -33 」、「-33 -33」、「-34 -36 -35」)のそれぞれの要素数をBのように示したいです。
ご助言よろしくお願いします。
Réponses (2)
bwlabel 関数を使ってみてください
A=[-210 -210 -33 -34 -33 -35 -30 -33 -210 -33 -33 -210 -210 -34 -36 -35 -210];
[groups, numGroups] = bwlabel(A > -210)
for ii = 1:numGroups
B(1,ii) = sum(groups == ii);
end
B
A = [-210 -210 -33 -34 -33 -35 -30 -33 -210 -33 -33 -210 -210 -34 -36 -35 -210];
temp = cumsum(A > -210)
B = diff([0 temp(diff(A > -210) < 0)]) % -210より大きく連続している要素数
Catégories
En savoir plus sur Annotations dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!