# How do I extract multiple vectors of different lengths from a single vector?

7 views (last 30 days)
Michael on 24 Feb 2014
Commented: Michael on 24 Feb 2014
I have a noise signal generated from a power supply rail that crosses zero at about 118 points. I want to extract vectors of the data from one negative zero crossing to the next to separate them out. They are from a PRBS7 pattern and I want to make multiple patterns from the one pattern by randomizing the order of the vectors.
My initial attempt to extract the vectors (Doesn't work because they are different lengths)
*ivddx is the noise vector, v is the vector that contains the zero crossing indices of ivddx
k=length(v)
for i = 1:k
if i==1
a(:,1)=ivddx(1):ivddx(v(1));
elseif i==k
a(:,k+1)=ivddx(v(k):end);
else
a(:,i)=ivddx(v(i):v(i+1)-1);
end
end
##### 0 CommentsShowHide -1 older comments

Sign in to comment.

### Answers (1)

Doug Hull on 24 Feb 2014
You should store each extracted vector in a cell array. The elements of a cell array do not care if they are different lenths:
>> a{1} = [1]
a =
[1]
>> a{2} = [2 2]
a =
[1] [1x2 double]
##### 1 CommentShowHide None
Michael on 24 Feb 2014
Thanks

Sign in to comment.

### Categories

Find more on Fourier Analysis and Filtering in Help Center and File Exchange

### Community Treasure Hunt

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

Start Hunting!