Grouping elements by conditions
1 回表示 (過去 30 日間)
古いコメントを表示
I have an array [ 1 1.2 1.5 1.9 5 8 8.1 10 12 12.3 12.5]. I'm trying to group the elements that are within a window of length 1, so I get [ 1 1.2 1.5 1.9] [8 8.1] [12.3 12.5] How can this be done efficiently
2 件のコメント
dani elias
2020 年 11 月 19 日
how can I use the same concept to group every 4 binary digit, for the case I have an array of 256 binary number,
example
a=[1 1 1 1 1 1 1 1 1 0 1 1 1 0 0 0];
to be in a form of
b=[1111;1111;1011;1000]
採用された回答
Matt J
2018 年 8 月 21 日
編集済み: Matt J
2018 年 8 月 21 日
x=[ 1 1.2 1.5 1.9 5 8 8.1 10 12 12.3 12.5];
label = graph_connected_components(abs(x.'-x)<=1)
groupcell = splitapply(@(g){g},x,label)
5 件のコメント
Matt J
2018 年 8 月 29 日
Adapting Yuvaraj's answer,
x=[ 1 1.2 1.5 1.9 5 8 8.1 10 12 12.3 12.5; 1 5.3 2.1 5.4 1 6 2.1 45 23 14.3 13.4];
a=x(1,:);
Len=diff([0,find(diff(a)>1),numel(a)]);
S=mat2cell(x,2,Len)
その他の回答 (1 件)
Yuvaraj Venkataswamy
2018 年 8 月 21 日
編集済み: Matt J
2018 年 8 月 21 日
This is your answer.
X=[ 1 1.2 1.5 1.9 5 8 8.1 10 12 12.3 12.5];
Len=diff([0,find(diff(a)>1),numel(a)]);
S=mat2cell(X,1,Len);
0 件のコメント
参考
カテゴリ
Help Center および File Exchange で Cell Arrays についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!