Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

New to MATLAB?

How to create multiple matrix using for loop?

Asked by Kirti

Kirti (view profile)

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

Kirti

Kirti (view profile)

Products

No products are associated with this question.

4 Answers

Answer by Ilham Hardy

Ilham Hardy (view profile)

on 26 Nov 2012
Accepted answer
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

Ilham Hardy

Ilham Hardy (view profile)

Answer by Amin Bashi

Amin Bashi (view profile)

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

Amin Bashi

Amin Bashi (view profile)

Answer by 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

Answer by Kirti

Kirti (view profile)

on 26 Nov 2012

Thanks liham Hardy

1 Comment

Kirti

Kirti (view profile)

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.

Kirti

Kirti (view profile)

Contact us