Stor data in a vector

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일

0 개 추천

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일

0 개 추천

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일

0 개 추천

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일

0 개 추천

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

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

댓글을 달려면 로그인하십시오.

카테고리

도움말 센터File Exchange에서 MATLAB에 대해 자세히 알아보기

질문:

2013년 6월 5일

Community Treasure Hunt

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

Start Hunting!

Translated by