How to pick group sum values from an array
显示 更早的评论
How can I do the group sum in an array.
X=[1111100000000010000000100011100011111];
In this X array, I wanna group the values where index 1 occus for 3 or more consecutive cells.
Answer like X1=sum(5+1+1+3+5)=15;
But I need X2=groupsum[5 3 5];
How can I do this.
Thanks,
1 个评论
X = '1111100000000010000000100011100011111';
[S,E] = regexp(X,'1{3,}');
N = E-S+1
采纳的回答
更多回答(2 个)
X=[1 1 1 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 1 1 0 0 0 1 1 1 1 1];
xStr = string(X).join("");
pat = asManyOfPattern("1",3); % group of at least 3 times "1"
matchVec = xStr.extract(pat);
count = matchVec.join.strlength;
...a step by step example using string functions for this special case
I tried this: (converting into text, deleting zeros, then finding strings of ones and checking their length)
but I have to go. I might come back later to finish this, but you get the idea. Hope I helped.
x = [1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,1,1,0,0,0,1,1,1,1,1];
xTxt = num2str(x)
a = strsplit(xTxt,"0")
类别
在 帮助中心 和 File Exchange 中查找有关 Matrices and Arrays 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!