Creating an array within a for loop
이전 댓글 표시
I have a plotting function which gets the points to plot from a for loop, i.e.
for i=1:length(rat2ind)
ind = A(:,1)==A(rat2ind(i),1); % pick all the rat locs for rat i
plot(A(ind,2),A(ind,3),randcolor);axis([-0.5 7.5, -0.5 7.5]) % plot rat i trajectory
hold on;
end
but instead of plotting the points, I'd like to save the points in an (n,2) array. I tried this:
for i=1:length(rat2ind)
ind = A(:,1)==A(rat2ind(i),1);
H=vertcat(H,[A(ind,1),A(ind,2),A(ind,3)]);
end
but it gave me a variable which is definitely not what I needed as its twice as large as my original data (the data, and my actual goal isn't really relevant here)
Thanks for any help
댓글 수: 4
Matt J
2013년 1월 27일
the data, and my actual goal isn't really relevant here
The data's size might be relevant when choosing an approach for you
Cedric
2013년 1월 27일
This line is suspicious to me:
ind = A(:,1)==A(rat2ind(i),1);
are you sure that it is not:
ind = A(:,1) == rat2ind(i) ;
Timothy Russell
2013년 1월 28일
채택된 답변
추가 답변 (1개)
N=size(A,1);
map=double(bsxfun(@eq,sparse(A(:,1)),A(ratind,1).'));
ind=nonzeros( bsxfun(@times, (1:N).', map ) );
H=A(ind,1:3);
카테고리
도움말 센터 및 File Exchange에서 Programming에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!