Splitting matrix into fixed rows and N columns

Hello,
I have a matrix 3900x3. My goal is to rearrange it every 30x3 values in order to gain a resulting matrix of 30x130. I guess it is a simple task but I am pretty new into matlab codes and could not find any tips on the internet. Hope I clearly explained the problem

2 Comments

Yazan
Yazan on 16 Dec 2021
Edited: Yazan on 16 Dec 2021
A 3900-by-3 matrix contains 11700 elements, but a 30-by-130 matrix has only 3900, so you can't just reshape the former to get to the latter. Explain better how to move from the first matrix to the second.
I need to rearrange the 3900-by-3 [A B C] matrix concatenating it horizontally every 30-by-3 values.
So the resulting matrix will be 30-by [A B C A B C A B C ...] 390.

Sign in to comment.

 Accepted Answer

Torsten
Torsten on 16 Dec 2021
Edited: Torsten on 16 Dec 2021
M_new = M(1:30,:);
For i=2:130
M_new = horzcat(M_new, M(30*(i-1)+1:30*i,:)); % M is your original matrix (3900 x 3)
end

More Answers (1)

thank you a lot! it worked well.
much appreciated

Categories

Community Treasure Hunt

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

Start Hunting!