How can I mat2cell the array?

1 view (last 30 days)
Hang Vu
Hang Vu on 29 Apr 2019
Edited: Hang Vu on 29 Apr 2019
Suppose I have this:
v= {1 8 1 1 6 1 2 5 3 2 7 11 7 9 10 9};
How can I mat them as below? ( with array start and end as same number)
v= { [1 8 1] [1 6 1] [2 5 3 2] [7 11 7] [9 10 9] };

Accepted Answer

Stephen23
Stephen23 on 29 Apr 2019
Edited: Stephen23 on 29 Apr 2019
>> v = {1,8,1,1,6,1,2,5,3,2,7,11,7,9,10,9};
>> c = regexp(char([v{:}]),'(.).*?(??$1)','match');
>> c = cellfun(@double,c,'uni',0);
>> c{:}
ans =
1 8 1
ans =
1 6 1
ans =
2 5 3 2
ans =
7 11 7
ans =
9 10 9
  1 Comment
Hang Vu
Hang Vu on 29 Apr 2019
Thank you so much!^^ you saved me 2 times. I just re-asked for previous question. Could you please take a look if you have time!

Sign in to comment.

More Answers (1)

Andrei Bobrov
Andrei Bobrov on 29 Apr 2019
out = mat2cell([v{:}],1,[3,3,4,3,3]);
  1 Comment
Hang Vu
Hang Vu on 29 Apr 2019
Edited: Hang Vu on 29 Apr 2019
Thank you for the response!

Sign in to comment.

Categories

Find more on Data Types in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!