2014-11-18 2 views
0

matlab에서 몇 가지 계산을 수행 할 .csv 파일을로드하고 있습니다. 파일 자체에는 ~ 1600 줄이 있지만 부분 집합에만 관심이 있습니다.루프에서 거리를 계산하는 MATLAB

load file.csv; %load file 

for i = 400:1200 %rows I am interested in 

    rh_x= file(i,60); % columns interested, in column 60 for the x, 61 for y 
    rh_y= file(i,61); 

    rh_x2 = file(i+1, 60); % next point (x,y) 
    rh_y2 = file(i+1, 61); 

    p1 = [rh_x, rh_y]; 
    p2 = [rh_x2, rh_y2]; 

    coord = [p1, p2]; 
    Distan = pdist(coord, 'euclidean'); **** 
    disp(Distan); 
end 

것도 내 Distan에 저장되고 있지 변수 (화학식 거리), I는 입력, 두 지점을 시도 여기서. 왜 그런 경우입니까? 나는 단지 프레임 400-1200에 대해 행 60과 61의 모든 점 쌍에 대한 거리 공식을 계산하려고합니다.

감사합니다.

+0

'coord'를 출력하고 올바른 행렬인지 확인해 줄 수 있습니까? – David

+0

예, 위의 내용을 변경하고 disp (coord)로 수정했습니다. – user3295674

답변

2
다음에 coord 할당을 변경

:

coord = [p1; p2]; 

당신이 그것을 가지고하는 방법, 그것은 X를 모두 저장하는하는 1X4 매트릭스와 같은 행에 Y 쌍. 위의 방법은 그것을 2x2 행렬로 저장하고 pdist이 답을줍니다.

+0

정말 고마워요, 그게 다야! 내가 matlab을 만진 이후로 잠시 있었다. – user3295674

관련 문제