Clear Filters
Clear Filters

How to to group each set of data in individual cell array ?

2 views (last 30 days)
I have a raw data matrix as
A=[111 1 2 3; 111 4 5 6; 111 7 8 9; 112 10 11 12 ; 112 13 14 15; 112 16 17 18];
the first column is a customer ID.
I want to group each customer in individual cell array as
B=1X2 cell where
B{1,1}=[111 1 2 3; 111 4 5 6; 111 7 8 9] and
B{1,2}=[112 10 11 12 ; 112 13 14 15; 112 16 17 18]
How can I create program to get a result like B ?

Answers (1)

Stephen23
Stephen23 on 13 Jan 2018
>> A = [111,1,2,3;111,4,5,6;111,7,8,9;112,10,11,12;112,13,14,15;112,16,17,18];
>> [~,~,X] = unique(A(:,1));
>> B = accumarray(X,(1:size(A,1)).',[],@(r){A(r,:)});
>> B{:}
ans =
111 1 2 3
111 4 5 6
111 7 8 9
ans =
112 10 11 12
112 13 14 15
112 16 17 18
>>

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!