How do I take a large table, split it into smaller chunks, and add them to a new table?

1 visualizzazione (ultimi 30 giorni)
Hi, I have a 100x5 table. The 100 rows are split evenly into 4 classes (for example, 1:25 = class 1, 26:50 = class 2, and so on). I would like to take the first 10 value from each of the classes in that table to create a new, 40x5 table. Is this possible? This is the code I have now, but it is not set up correctly. Any help is appreciated.
Table40 = Table100([1:10,:],[26:35,:],[51:60,:],[76:85,:]);

Risposte (2)

Star Strider
Star Strider il 14 Lug 2017
Try this:
v1 = rand(100,1); % Create Data
v2 = rand(100,1); % Create Data
v3 = rand(100,1); % Create Data
v4 = rand(100,1); % Create Data
v5 = rand(100,1); % Create Data
Table100 = table(v1, v2, v3, v4, v5); % Create ‘Table100’
Table40 = Table100([1:25,26:35,51:60,76:85],:); % Create ‘Table40’

Peter Perkins
Peter Perkins il 18 Lug 2017
Another possibility: use repelem to create a variable in the table that indicates the group number. Then call varfun, using that new variabl;e as the grouping variable, and pass varfun a function that returns the first 10 rows of whatever column vector it's given.

Categorie

Scopri di più su Matrices and Arrays in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by