divide a vector in subvectors

Hi, I have a long vector, and I want to divide it for example in subvectors of size 100. without using a reshape() because I don't know the size of my long vector and so it doesn't fit perfectly in a M*N matrix. So, how can I do it? thank you

1 commentaire

KSSV
KSSV le 10 Mai 2016
Modifié(e) : KSSV le 10 Mai 2016
why you don't know the size of vector? Once you have it in MATLAB, you can get its size using size(vector)?

Connectez-vous pour commenter.

Réponses (2)

Andrei Bobrov
Andrei Bobrov le 10 Mai 2016
Modifié(e) : Andrei Bobrov le 10 Mai 2016

0 votes

A = randi(12,27,1); % - your vector
M = 4;
out = reshape([A;nan(mod(-numel(A),M),1)],M,[]);
Guillaume
Guillaume le 10 Mai 2016

0 votes

You can split your vector into a cell array of subvectors using mat2cell:
v = rand(1, 1024); %demo data. length is not a multiple of 100
splitlength = 100;
sublengths = ones(1, ceil(numel(v)/splitlength)) * splitlength;
sublengths(end) = sublengths(end) + numel(v) - sum(sublengths); %adjust length of last block
subvectors = mat2cell(v, 1, sublengths)

Catégories

Community Treasure Hunt

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

Start Hunting!

Translated by