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 件)

Andrei Bobrov
Andrei Bobrov 2016 年 5 月 10 日
編集済み: Andrei Bobrov 2016 年 5 月 10 日

0 投票

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

0 投票

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 ExchangeNumeric 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