連続したある数値以上の要素を一つのグループとして表したい
13 ビュー (過去 30 日間)
古いコメントを表示
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のように示したいです。
ご助言よろしくお願いします。
0 件のコメント
回答 (2 件)
Hernia Baby
2022 年 6 月 6 日
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
0 件のコメント
Atsushi Ueno
2022 年 6 月 6 日
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より大きく連続している要素数
0 件のコメント
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!