Separate data series based on parameter within the data.
9 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
I have a data series 50704x4 which contains data that looks roughly like this
A = [1,n,n,n;
1,n,n,n;
2,n,n,n;
...
100,n,n,n]
where the n are numerical data and the 1,2,...,100 are the frequency that i logged data for. I want to change this to have a distinct A1, A2, ... for each frequency.
If it is useful, the frequencies used are 1,2,3.3,5,8,10,20,40,50,70,90, and 100
how can i seperate these data?
Respuestas (1)
Stephen23
el 18 de Feb. de 2025
Editada: Stephen23
el 18 de Feb. de 2025
A = [1,12,13,14; 1,21,23,24; 2,32,33,34; 100,42,43,44]
[G,ID] = findgroups(A(:,1));
Method one:
F = @(x)A(x==A(:,1),:);
C = arrayfun(F,ID,'uni',0)
C{:}
Method two:
F = @(x)A(x==G,:);
C = arrayfun(F,1:max(G),'uni',0)
C{:}
Method three:
F = @(x){A(x==A(:,1),:)};
V = 1:numel(ID);
C = accumarray(V(:),ID,[],F)
C{:}
Method four:
F = @(x){A(x,:)};
V = 1:size(A,1);
C = splitapply(F,V(:),G)
C{:}
"how can i seperate these data?"
Note that splitting up data like that is often not required (and is in many cases an inefficient approach to data storage/processing):
0 comentarios
Ver también
Categorías
Más información sobre Data Acquisition Toolbox Supported Hardware en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!