如何确定相似但不相等的坐标值之间的差值?

时间:2013-05-28 13:13:47

标签: matlab

我有两个长度不等的矩阵。每个矩阵包含一列中的坐标和与第二列中的那些坐标相关联的值 两种情况下的坐标范围都相似,但坐标并不完全相同 我想找到第一个和第二个矩阵的值之间的差值。我如何克服不同坐标的问题?

1 个答案:

答案 0 :(得分:1)

您可以尝试将值从一个矩阵插值到另一个矩阵的坐标并绘制delta:

y = rand(25,1);
z = rand(30,1);

x{:,1} = linspace(0,1,size(y,1))'; 
x{:,2} = linspace(0,1,size(z,1))';

hold on
plot(x{:,1},y,'b');
plot(x{:,2},z,'r');

z_new = interp1(x{:,2},z,x{:,1});

zy_delta = y - z_new;

plot(x{:,1},zy_delta,'xk');

yz都针对相同的“无维度”范围[0,1]绘制。 z的点数多于yrand函数提供了获取两个不同数据集的简单方法。
在图中,人们可以比较yz。要测量差异,请使用interp1 - 或您认为适合您的问题的任何其他插值 - 在较低分辨率的数据集坐标处查找分辨率较高的数据集的值。
现在您有两个长度相等的数据集:yz_new。在这两者之间,您可以计算三角形并在必要时绘制它 在这种情况下,yz的差别足以产生大量的增量。如果他们离得更近,那么增量会更小。