assign subscrips to vectors

2 次查看(过去 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 中查找有关 Logical 的更多信息

标签

尚未输入任何标签。

Community Treasure Hunt

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

Start Hunting!

Translated by