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 日

0 投票

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
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.
Beatriz Dueñas Muñoz
Beatriz Dueñas Muñoz 2020 年 3 月 24 日
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