assign subscrips to vectors

3 次查看(过去 30 天)
dav
dav 2013-3-12
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

采纳的回答

Cedric
Cedric 2013-3-12
编辑:Cedric 2013-3-12
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 个评论
dav
dav 2013-3-12
thank you everyone!
Cedric
Cedric 2013-3-12
编辑:Cedric 2013-3-12
You're welcome, please check the last EDITs that I made (worded a little better, eliminated typos).

请先登录,再进行评论。

更多回答(2 个)

Youssef  Khmou
Youssef Khmou 2013-3-12
hi, try :
N=200;
for n=1:N
yt1(n)=.............
yt2(n)=.......
.....
end
  4 个评论
dav
dav 2013-3-12
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 2013-3-12
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?

请先登录,再进行评论。


Walter Roberson
Walter Roberson 2013-3-12

类别

Help CenterFile Exchange 中查找有关 Loops and Conditional Statements 的更多信息

标签

尚未输入任何标签。

Community Treasure Hunt

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

Start Hunting!

Translated by