MATLAB: How to split divide an array on specific sections

MATLABmultiple variablesplit array

I have a double array of dimension (10000,5), the first column of the array is an ID going from 1-10. The other 4 columns are the related data. I'm trying to create individual arrays based on each ID value and the quantity of each ID can vary with respect to each other.
%For example:
%CA is the vector with the data =(ID,DATA1,DATA2,DATA3,DATA4)
%ID goes from 1-10
%The first array should be GC1=(1,DATA1,DATA2,DATA3,DATA4) with "x" number of rows
%I have tried to make this code work but I don't know what's wrong? I have a loop to create 11 array GC(id), although i now is not recommended.
k =size(ID,1); %size of vector, size of data base
x=0;
jl=1;
CAA=zeros(k,1);
CAA=CA(:,1); %extraction of the ID column from CA
for id=1:10
for i=jl:k
if CAA(i,1)==1
x=x+1;
else
GC(id)=zeros(x,5);
GC(id)=CAA(jl:x,5);
end
end
end

Best Answer

You can do this with logical indexing. Say, for example, you want to grab the data whose ID corresponds to 5:
% Generate dummy data
% First column is a random number 1-10
data = [randi(10,100,1) rand(100,4)];
% Extract the data from those with ID #5
subset5 = data(data(:,1)==5,:);
- Sebastian