MATLAB计算循环中的距离

时间:2014-11-18 03:12:31

标签: matlab for-loop euclidean-distance

我正在加载.csv文件,在matlab中进行一些计算。文件本身有大约1600行,但我只对一个子集感兴趣。

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 变量(距离公式)中没有存储任何内容,我尝试输入两个点。为什么会这样?我只是想为第400-1200帧计算行60和61中所有点对的距离公式。

谢谢。

1 个答案:

答案 0 :(得分:2)

将您的coord作业更改为以下内容:

coord = [p1; p2];

你拥有它的方式,它将所有x,y对存储在同一行,作为1x4矩阵。上述方法将其存储为2x2矩阵,pdist给出答案。