storing data into a vector within nested for loop

im = imread(im);
im = im2bw(im);
s = size(im);
xtot = s(2);
ytot = s(1);
for xcount = 1:xtot,
for ycount = 1:ytot,
if im(ycount,xcount) == 1
sqrt((xcount-coord(2)).^2+(ycount-coord(1)).^2)
end
end
end
end
bear with me, since i'm new to matlab.
i'm making this function to quickly calculate distances from a particular object to a known coordinate. i turned the object image into black and white, read the dimensions, then iterated along the image matrix searching for 1s (which are a part of the object). then i use the coordinates that come up as 1s and measure distance to the known coordinate. i need to store all the distances in one vector so i can take the minimum. input arguments were the image and the 2d coordinate. thanks for your help.

 채택된 답변

Titus Edelhofer
Titus Edelhofer 2012년 3월 19일

1 개 추천

Hi,
usually I would not use a loop for this kind of operations: do the following instead:
[Xcount, Ycount] = meshgrid(1:xtot, 1:ytot);
distance = sqrt((Xcount-coord(2)).^2 + (Ycount-coord(1)).^2);
Now the matrix "distance" contains all distances...
Titus

댓글 수: 1

Michael
Michael 2012년 3월 19일
awesome. that's exactly the function i needed to know.
thanks for your help!

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

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 2-D and 3-D Plots에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by