assign subscrips to vectors

2 views (last 30 days)
dav
dav on 12 Mar 2013
I have 5 vectors yt1, yt2, yt3,yt4,yt5 of size 200*1.
I need to assign subscripts so that I can call the vector I want in side a loop.
Can you please help me with this?
Thanks

Accepted Answer

Cedric
Cedric on 12 Mar 2013
Edited: Cedric on 12 Mar 2013
You probably want something like
yt = [yt1, yt2, yt3, yt4, yt5] ;
and then use
yt(:,k)
in the loop, where k is the loop index. If yt's were not all the same dimension, you could use a cell array:
yt = {y1, y2, y3, y4, y5} ;
and then use
yt{k}
in the loop.
If you want to avoid copies/aggregation, just define directly the matrix the cell array instead of defining yt1 to yt5, e.g.
yt = zeros(200,5) ; % Prealloc.
yt(:,1) = ... whatever computation you used to define yt1
yt(:,2) = ... whatever computation you used to define yt2
..
or
yt{1} = ... whatever computation you used to define yt1
yt{2} = ... whatever computation you used to define yt2
  2 Comments
dav
dav on 12 Mar 2013
thank you everyone!
Cedric
Cedric on 12 Mar 2013
Edited: Cedric on 12 Mar 2013
You're welcome, please check the last EDITs that I made (worded a little better, eliminated typos).

Sign in to comment.

More Answers (2)

Youssef  Khmou
Youssef Khmou on 12 Mar 2013
hi, try :
N=200;
for n=1:N
yt1(n)=.............
yt2(n)=.......
.....
end
  4 Comments
dav
dav on 12 Mar 2013
I mean something like the following:
For m=1:5
ym=ytm;
end
where ytm is a full vector for m=1,2..5
Youssef  Khmou
Youssef Khmou on 12 Mar 2013
alright, i dont think that is possible but you can construct a matrix that contains the vectors :
yt1=rand(200,1);
yt2=rand(200,1);
yt3=rand(200,1);
yt4=rand(200,1);
yt5=rand(200,1);
Y=[yt1';yt2';yt3';yt4';yt5'];
for m=1:5
ym=Y(m,:);
end
ok?

Sign in to comment.


Walter Roberson
Walter Roberson on 12 Mar 2013

Tags

No tags entered yet.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!