# How to create multiple matrix using for loop?

44 views (last 30 days)
Kirti on 26 Nov 2012
Hi all, I am having y=[1 2 3 4 5 6 7 8 9 10] as data. i want to write array x1 =[ 1 2 3 4 5] x2 =[2 3 4 5 6] x3= [3 4 5 6 7] like this upto x6 =[6 7 8 9 10]. please help me to create this using matlab. I tried as follows :n=10;k=6;m=5; for i=1:k for j=i:i+m-2 x[i]= a(j); end end but it is not working!!

Ilham Hardy on 26 Nov 2012
ya = [1,2,3,4,5,6,7,8,9,10];
for iy = 1:(length(ya)/2)+1
xa(iy,:) = ya(iy:4+iy);
end

Amin Bashi on 26 Nov 2012
y=[1 2 3 4 5 6 7 8 9 10]
x = y([1:5;2:6;3:7;4:8;5:9;6:10])

Muruganandham Subramanian on 26 Nov 2012
Hi..
try this code
a=[1:10];
for i=1:numel(a)
if i==a(1)
disp(a)
elseif i<=6
a(1)=[];
disp(a)
else
break;
end
end

Kirti on 26 Nov 2012
Thanks liham Hardy

#### 1 Comment

Kirti on 27 Nov 2012
when i use same logic for long data i got subscripted assignment diamentiopn mismatch error.eg. i wrote the code as t=-pi :0.01244:pi y=sin(t) n=length(y); m=n/2;k=n+1-m; for iy=1:k; xa(iy,:)=y(iy+m-1); end disp(xa). I want a sine wave of 504 samples ,add it with White guassian noise.then write sampled sine wave in terms of lagged vectors and then finally the trajectory matrix.