MATLAB: Extracting n elemnts of an array


II have an array with dimensions [5568X1] and I want to extract every 48 values and put it in a different array (so 5568/48=116 arrays).
I have already created a cell(116,1), and probably i need an k=1:116
do you know how can I do this?

Best Answer

  • Why do you think that you need to create 116 different arrays? This is a terrible idea, and one every novice programmer thinks they need to do. You don't even need to create a cell array of vectors. Instead, learn to use an array, instead of many vectors. Then a simple call to reshape will suffice.
    b = rand(5568,1); % just something random to show you how it works
    a = reshape(b,48,116);
    ans =
    48 116
    So now you can access any one of those vectors as simply an index operation. So if you want to use the third such vector, do this:
    There is absolutely NO need to use a cell array here, although it is something of value in many circumstances.