如何从第一点计算数据系列中每个点的差异?

时间:2014-11-25 09:36:09

标签: matlab difference array-difference

我有x-y坐标的签名时间序列数据,如下所示(对于一个文件)......

  x     y
12200 9400 
12200 9400 
12200 9400 
12200 9400 
12200 9400 
12200 9400 
12200 9400 
12200 9400 
12200 9400 
12200 9400 
12200 9400 
12300 9400 
12300 9400 
12300 9400 
12300 9400 
12300 9400 
12300 9400
12300 9300 
12300 9300...

我想计算相对于系列第一点的(差异)x-y坐标... 任何人都可以指导我如何在matlab中计算它?任何合适的功能或代码? 提前谢谢。

2 个答案:

答案 0 :(得分:1)

要从整个数组中减去第一行,请使用bsxfun

A = [
12200 9400 
12200 9400 
12200 9400 
12200 9400 
12200 9400 
12200 9400 
12300 9400 
12300 9400 
12300 9400
12300 9300 
12300 9300]

differenceToFirstPoint = bsxfun(@minus, A, A(1,:));

%# to calculate the norm:
normOfDifference = sqrt( sum( differenceToFirstPoint.^2, 2));

答案 1 :(得分:0)

我认为您的问题是,从一组积分(x1,y1);(x2,y2);...(xn,yn)开始,如何获得(0,0);(x2-x1,y2-y1);...(xn-x1,yn-y1)

快速解决方案:如果a是包含您数据的N-by-2数组,则

b=a; b(:,1)=b(:,1)-b(1,1); b(:,2)=b(:,2)-b(1,2);

如果您的问题是关于如何从CSV文件或其他内容导入数据,那就完全不同了。