我有两个长度不等的矩阵。每个矩阵包含一列中的坐标和与第二列中的那些坐标相关联的值 两种情况下的坐标范围都相似,但坐标并不完全相同 我想找到第一个和第二个矩阵的值之间的差值。我如何克服不同坐标的问题?
答案 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');
y
和z
都针对相同的“无维度”范围[0,1]
绘制。 z
的点数多于y
,rand
函数提供了获取两个不同数据集的简单方法。
在图中,人们可以比较y
和z
。要测量差异,请使用interp1
- 或您认为适合您的问题的任何其他插值 - 在较低分辨率的数据集坐标处查找分辨率较高的数据集的值。
现在您有两个长度相等的数据集:y
和z_new
。在这两者之间,您可以计算三角形并在必要时绘制它
在这种情况下,y
和z
的差别足以产生大量的增量。如果他们离得更近,那么增量会更小。