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

on 26 Nov 2012
Accepted Answer by Ilham Hardy

Ilham Hardy

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

Products

No products are associated with this question.

4 Answers

Answer by Ilham Hardy

Ilham Hardy

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

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

Amin Bashi

Amin Bashi

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

Muruganandham Subramanian

Muruganandham Subramanian

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

Kirti

Kirti

Contact us