split matrix into multiple matrices with variable number of rows according to value of a column
4 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Hi
I have a large mx2 matrix that i want to split into multpile mx2 matrices according the value of column 1. so lets say for values of [20,100[ of column 1 i want to create a seperate mx2 matrix. then for [100,500[ another one and so one. The numner of rows can change for the large matrix but i always want to create 5 smaller matrices according to the value of the first column. So the smaller matrices wil also have a different number of rows. I added an example of a matrix in excell. Can someone help me with this problem?
thanks in advance
5 commentaires
Stephen23
le 16 Avr 2020
"I hope this figure explains my problem? "
Not really. Your sample file has values in the first column that range from 20 to 2001: you have not explained the general rule/s for how you want to split up those values (or any other values that you might have) into five groups.
Réponses (1)
darova
le 16 Avr 2020
Here is how i see the solution
S = importdata('Bspectrumgloei.xlsx');
A = S.data;
ind = [ 20 54 78 98 132 ];
A1 = cell(5,1);
for i = 1:length(ind)-1
ix1 = find(A(:,1)==ind(i), 1,'first');
ix2 = find(A(:,1)==ind(i+1), 1,'first');
A1{i} = A(ix1:ix2-1,:);
end
A1{end} = A(ix2+1:end,:);
2 commentaires
darova
le 16 Avr 2020
I think you need mat2cell as dpd suggested earlier
Just divide your matrix into 5 equal
Voir également
Catégories
En savoir plus sur Data Type Identification dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!