How do I reorder the dimensions of an n dimensional array. For example, if I have a three dimensional array of sales data, where the first dimension represents the Date, the second dimension is the Store, and the third dimension is Department. How do I transform the array so that the first dimension is Store, the second is Department, and the third is Date. This is just an example. I am hoping for a general solution.
B = permute( A , dimorder ) rearranges the dimensions of an array in the order specified by the vector dimorder . For example, permute(A,[2 1]) switches the row and column dimensions of a matrix A .
The shape of the array can also be changed using the resize() method. If the specified dimension is larger than the actual array, The extra spaces in the new array will be filled with repeated copies of the original array.
'Permute' command in Permute Matlab is used to rearrange the elements within a multidimensional array. To access this command we just need to pass the order of the multi-dimensional matrix. It has various features like dimension, size, circshift, and reshape.
The function for doing that is aperm
, from the base package. It is a generalization of the transpose t()
function to multidimensional arrays. For your example, you would call it as follows:
new.data <- aperm(old.data, c(2,3,1))
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With