split matrix into multiple matrices with variable number of rows according to value of a column
4 次查看(过去 30 天)
显示 更早的评论
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 个评论
Stephen23
2020-4-16
"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.
回答(1 个)
darova
2020-4-16
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 个评论
darova
2020-4-16
I think you need mat2cell as dpd suggested earlier
Just divide your matrix into 5 equal
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Logical 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!