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 个评论

KSSV
KSSV 2016-5-10
编辑:KSSV 2016-5-10
why you don't know the size of vector? Once you have it in MATLAB, you can get its size using size(vector)?

请先登录,再进行评论。

回答(2 个)

A = randi(12,27,1); % - your vector
M = 4;
out = reshape([A;nan(mod(-numel(A),M),1)],M,[]);
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)

类别

帮助中心File Exchange 中查找有关 Numeric Types 的更多信息

标签

提问:

2016-5-10

回答:

2016-5-10

Community Treasure Hunt

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

Start Hunting!

Translated by