Stor data in a vector

4 次查看(过去 30 天)
Lukas
Lukas 2013-6-5
For every loop z i want to store my data so that JJ doesnt just become the reslut of z=40, i want JJ to be a vector(1,1000), now i only get JJ to be a vector of (1,25) from the last z loop.
p_t2=1:1000 pt2=1:40
for z=1:40 for v=1:25 XX=p_t2(v)./pt2; JJ(v)=sum(XX); end p_t2(1:25)=[]; pt2(:,1)=[]; end
thank you in advance

采纳的回答

Iman Ansari
Iman Ansari 2013-6-5
p_t2=1:1000
pt2=1:40
JJ=[];
for z=1:40
for v=1:25
XX=p_t2(v)./pt2;
JJ=[JJ sum(XX)];
end
p_t2(1:25)=[];
pt2(:,1)=[];
end

更多回答(3 个)

Lukas
Lukas 2013-6-5
The code didnt look as i wanted it, sorry...
p_t2=1:1000
pt2=1:40
p_t2=1:1000
pt2=1:40
for z=1:40
for v=1:25
XX=p_t2(v)./pt2;
JJ(v)=sum(XX);
end
p_t2(1:25)=[];
pt2(:,1)=[];
end

Mark
Mark 2013-6-5
编辑:Mark 2013-6-5
If you want preallocation:
p_t2=1:1000;
pt2=1:40;
JJ=zeros(1,1000);
for z=1:40
for v=1:25
XX=p_t2(v)./pt2;
JJ((z-1)*25+v)=sum(XX);
end
p_t2(1:25)=[];
pt2(:,1)=[];
end

Lukas
Lukas 2013-6-5
Thank you for the quick answers, however now I have an other problem..
How do I in a spimle way adjust it to be able to hadel a matrix as input, for example if:
p_t2=rand(2,1000)
pt2=rand(2,40)
JJ=[];
for z=1:40
for v=1:25
XX=p_t2(v)./pt2;
JJ=[JJ sum(XX)];
end
p_t2(1:25)=[];
pt2(:,1)=[];
end
I want the output JJ be a matrix with dimension (2,1000)
  1 个评论
Iman Ansari
Iman Ansari 2013-6-5
clear;
p_t2=rand(2,1000);
pt2=rand(2,40);
JJ=[];
for z=1:40
for v=1:25
XX=bsxfun(@rdivide,p_t2(:,v),pt2);
JJ=[JJ sum(XX,2)];
end
p_t2(:,1:25)=[];
pt2(:,1)=[];
end

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Matrix Indexing 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by