您可以使用此代码访问绘制的数据
x = 10:100;
y = log10(x);
plot(x,y);
h = gcf;
axesObjs = get(h, 'Children'); %axes handles
dataObjs = get(axesObjs, 'Children'); %handles to low-level graphics objects in axes
objTypes = get(dataObjs, 'Type'); %type of low-level graphics object
xdata = get(dataObjs, 'XData'); %data from low-level grahics objects
ydata = get(dataObjs, 'YData');
例如,您可以在 xdata 和 ydata 之间进行关联,或者进行任何类型的比较。系数 R 将指示匹配百分比。
[R,P] = corrcoef(xdata, ydata);
您还会有兴趣比较图形当前轴中的轴限制。例如
R = ( diff(get(h_ax1,'XLim')) / diff(get(h_ax2,'XLim')) ) + ...
( diff(get(h_ax1,'YLim')) / diff(get(h_ax2,'YLim')) )
其中 h_ax1 是第一个 ax 的句柄,而 h_ax2 是第二个 ax 的句柄。在这里,您将比较 (XLim + YLim) 的值。不过,与不同 gca 属性的可能比较确实很大。
编辑
要比较两组点,您可以使用分析关系以外的其他指标。我想到了距离或收敛,例如Hausdorff 距离。matlab central中提供了一个脚本。我用这样的距离来比较字母的形状。在维基百科页面中,“应用程序”部分很重要(厚形状的边缘检测器,但它可能与您的特定问题无关)。