split matrix into multiple matrices with variable number of rows according to value of a column
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
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 comentarios
Stephen23
el 16 de Abr. de 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.
Respuestas (1)
darova
el 16 de Abr. de 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 comentarios
darova
el 16 de Abr. de 2020
I think you need mat2cell as dpd suggested earlier
Just divide your matrix into 5 equal
Ver también
Categorías
Más información sobre Logical 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!