Split a vector
18 views (last 30 days)
Show older comments
Hi,
I have a question regarding vectors: I have a vector of size n and I want to split the vector by a matlab function so that I get elements 1-10, 2-11, 3-12....
Is there any built-in-function?
Thanks!
0 Comments
Accepted Answer
Grzegorz Knor
on 21 Sep 2011
Split to one matrix:
n = 20;
% create vector a
a = 1:n;
m = cell2mat(arrayfun(@(x)a(x:x+9)',1:n-9,'UniformOutput',false));
Splitting to one matrix you can also perform with this code:
a = rand(20,1)
n = length(a);
[x y] = meshgrid(0:n-10,1:10);
a(x+y)
Split to vectors:
n = 20;
% create vector a
a = 1:n;
for k=1:n-9
eval(['vec' num2str(k) ' = a(k:k+9);'])
end
More Answers (1)
fcarl
on 21 Sep 2011
1 Comment
Grzegorz Knor
on 21 Sep 2011
In my opinion I've given the solutions in the post above :)
x=10;
vec=1:1000;
[i1 i2] = meshgrid(0:x-1,1:length(vec)-x+1);
result = vec(i1+i2)
See Also
Categories
Find more on Detection 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!