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

 采纳的回答

Sindar
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 个评论

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.
thank you so much!!

请先登录,再进行评论。

更多回答(0 个)

类别

在 帮助中心 和 File Exchange 中查找有关 Characters and Strings 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by