Split a vector
21 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
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 commentaires
Réponse acceptée
Grzegorz Knor
le 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
Plus de réponses (1)
fcarl
le 21 Sep 2011
1 commentaire
Grzegorz Knor
le 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)
Voir également
Catégories
En savoir plus sur Detection dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!