MATLAB Answers

Divide array in to smaller 3D array

6 views (last 30 days)
Mantas Vaitonis
Mantas Vaitonis on 28 Jul 2018
Commented: Mantas Vaitonis on 28 Jul 2018
Hello, Maybe someone could help me with the following situation. Lets say I have multiple *.mat files, that contains of arrays with different number of rows but with the same number of columns. I need to divide each loaded array in to smaller 3D arrays. For example if I have array a 1324000xM, I would like to make 400000xMx3, and 124000 rows would be used for training later. If I have array 2411000xM it should be 400000xMx6. And not always it would be 400000 rows it could warry, what would be the way to achieve this?


Image Analyst
Image Analyst on 28 Jul 2018
I don't understand how your .mat files, that contains one or more arrays (I'm not sure if it's one or more than one), are 3-D. And when you make your 3-D arrays, like a 400000xMx3 starting with a 1324000xM, what goes into the 3rd dimension? And how do you know if the 3rd dimension will be 3 or 6 planes? Have you tried reshape() and permute()?
Mantas Vaitonis
Mantas Vaitonis on 28 Jul 2018
There is multiple number *.mat files and each contains 2d array. Regarding third dimension and how I know if there will be 3 I take 1324000/400000=3,085 and integer number is 3. I need to convert 2D array in to smaller 2D arrays, however in order to make easier to access data I place these smaller 2D arrays in one 3D array. As example 2d array a 1324000xM then 3D x would look like this:
But all 2D arrays are different size, thus would like to know if it could be achieved using clever functions. Reshape would not work because the number of elements must not change and regarding permute not sore how it would work as the size of all arrays are different.

Sign in to comment.

Answers (0)

Community Treasure Hunt

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

Start Hunting!

Translated by