【发布时间】:2018-02-08 01:36:10
【问题描述】:
我在 MATLAB 中有一个值 X 和 Y 的图。我想在某些 X 值处从图中提取 Y 值 - 然后将这些值用于另一个计算。但是,我需要以与用于创建绘图的原始数据集不同的间隔提取这些值。如何从 MATLAB 中的图中对这些点进行采样?
这可能非常简单,但我是 MATLAB 新手!
【问题讨论】:
我在 MATLAB 中有一个值 X 和 Y 的图。我想在某些 X 值处从图中提取 Y 值 - 然后将这些值用于另一个计算。但是,我需要以与用于创建绘图的原始数据集不同的间隔提取这些值。如何从 MATLAB 中的图中对这些点进行采样?
这可能非常简单,但我是 MATLAB 新手!
【问题讨论】:
假设您有实际的 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');
【讨论】: