MATLAB: How to asign columns of a matrix to different matrixes

dataMATLABmatlab functionmatricesmatrix manipulationworkspace

Hi I would like to a large data matrix in different matrices. The data matrix is a 4 * 85932 (558*154) matrix where I want to asign each column to a different new matrix with the dimension of (558*154) and save it to the workspace. I tried to write following function to achieve that and than to run it from the command window. I only get a output in the command window but the matrices are not saved in the workspace.
Function
function [x, y, z, Vx, Vy] = matrix_generation(data)
%MATRIX_GENERATION returns the x, , z, Vx, vy as 558*154 matrixes
% splits each collum in 154 columns with each has 558 data
% the data matrix has 5 columns
for i= 1:5
q = zeros(558,154);
% each column has 154*558 rows
for j=1:154
for a = 1:558
q(a,j) = data(j*a,i);
end
end
if (i ==1)
x = q;
elseif (i ==2)
y = q;
elseif (i ==3)
z = q;
elseif (i ==4)
Vx = q;
else
Vy = q;
end
end
end

Best Answer

permute(reshape(matrix, 154, 558, []), [2, 1, 3])