How to split divide an array on specific sections?
15 views (last 30 days)
Show older comments
Jorge Rodriguez
on 16 Aug 2017
Commented: Jorge Rodriguez
on 17 Aug 2017
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
0 Comments
Accepted Answer
Sebastian Castro
on 16 Aug 2017
Edited: Sebastian Castro
on 16 Aug 2017
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
3 Comments
More Answers (1)
See Also
Categories
Find more on Loops and Conditional Statements in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!