group in a small vector
7 次查看(过去 30 天)
显示 更早的评论
I have a vector
A=[1,0,0,1,1,1];
I need to pass this vector to a new one taking groups of 3 element so
B = [100, 111]
Does someone know how could I do this?
Thank you
0 个评论
采纳的回答
Sindar
2020-3-24
编辑:Sindar
2020-3-24
Ok, here is a way:
A=[1,0,0,1,1,1];
% turn A into a 1x6 string array
tmp=string(A);
% reshape into a 3xN string array, then transpose to Nx3
tmp=reshape(tmp,3,[])';
% combine each row, leaving a Nx1 string array
tmp=join(tmp,'');
% convert back to a Nx1 numeric array, then transpose to 1xN
B = double(tmp)';
or, in one line:
B = double(join(reshape(string(A),3,[])',''))'
2 个评论
Sindar
2020-3-24
Should work for any A with a multiple of 3 elements, and error otherwise, e.g.,
Error using reshape
Product of known dimensions, 3, not divisible into total number of elements, 8.
更多回答(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!