如何在matlab中用绘图改进图形?

时间:2014-05-17 17:14:48

标签: matlab graphic

我需要绘制两个数据非常接近的数组。 如何提高图形的性能 我想减少线图。

enter image description here

https://dl.dropboxusercontent.com/u/41574157/my_plot.png

1 个答案:

答案 0 :(得分:1)

从评论中,您要么进行某种插值,平滑或点的子采样。我们来看看所有方法:

方法1 - 子采样

这很容易做到。假设您的两个数据点都存储在xy中,您可以指定从数据中抽样的频率。如果您想以每10个点为例进行采样,您可以执行以下操作:

xsample = x(1:10:end);
ysample = y(1:10:end);
plot(xsample, ysample);

plot将为您提供每个点之间的线性插值。这是plot的默认行为。

方法2 - 插值(非线性)

您可以像我们上面那样对您的点进行子采样,然后使用interp1在“关键点”之间进行插值。我们假设您要进行spline插值。就这样:

yinterp = interp1(xsample, ysample, x, 'spline');
plot(x, ysample);

方法3 - 平滑

如果您有曲线拟合工具箱,则可以使用smooth功能。 smooth函数的默认行为是移动平均值。它基本上将您的点放在有限大小的窗口内,对它们求平均值,这是一个样本的输出。平均值为您提供输出,该输出是数据的平滑版本。默认窗口的宽度为5,但您可以指定所需的范围。

ysmooth = smooth(y); %// or you can do ysmooth = smooth(y, N); 
                     %// where N is the size of your smoothing window
plot(x, ysmooth);

NB: N必须是奇数号码(1,3,5等)

希望其中一种方法适合你!