我在MATLAB中有一个值X和Y的图。我想在X的某些值上从图中提取Y的值,然后将这些值用于另一个计算。但是,我需要以不同于用于创建绘图的原始数据集的间隔提取这些值。如何从MATLAB中的绘图中采样这些点?
这可能非常简单,但我是MATLAB的新手!
答案 0 :(得分:2)
假设您有实际的MATLAB图,您可以通过查找线对象并获取其XData
和YData
属性来检索绘制的数据:
hline = findobj(gca,'type','line');
x = get(hline,'XData');
y = get(hline,'YData');
以上假设该图是“当前轴”,您可以通过在运行该代码之前单击它来确保该图。它还假设只有一个线对象(一个图形)。
现在x
和y
包含绘制的数据。您想以不同的x值对其进行采样。您可以使用interp1
:
newx = 0:0.1:10; % or whatever values of x
newy = interp1(x,y,newx);
默认情况下,它使用线性插值,绘制的图形也是如此。如果您愿意,可以选择不同的插值方法,例如:
newy = interp1(x,y,newx,'spline');