MATLAB Answers

How to create multiple matrix using for loop?

44 views (last 30 days)
Kirti
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!!

  0 Comments

Sign in to comment.

Accepted Answer

Ilham Hardy
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

  0 Comments

Sign in to comment.

More Answers (3)

Amin Bashi
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])

  0 Comments

Sign in to comment.


Muruganandham Subramanian
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

  0 Comments

Sign in to comment.


Kirti
Kirti on 26 Nov 2012
Thanks liham Hardy

  1 Comment

Kirti
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.

Sign in to comment.

Sign in to answer this question.