【问题标题】:how can i improve a graph with plot in matlab?如何在 matlab 中使用绘图改进图形?
【发布时间】:2014-05-17 17:14:47
【问题描述】:

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

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

【问题讨论】:

  • 上传图片并链接到这里?
  • 把你的图片放到一个公开的分享网站上,我会编辑你的帖子。另外,“减少线图”是什么意思?
  • 我添加了链接。我的意思是一个不太详细的图表...
  • “不那么详细”是什么意思?您想降低数据的分辨率吗?
  • 是的,降低分辨率或进行插值

标签: matlab graphic


【解决方案1】:

在 cmets 中,您要么想要对点进行某种插值、平滑或二次采样。让我们来看看所有的方法:

方法 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);

注意:N 必须是奇数(1、3、5 等)

希望其中一种方法对您有用!

【讨论】:

  • 很抱歉,我没有足够的声望投票。我是新用户
猜你喜欢
  • 2022-01-25
  • 1970-01-01
  • 2011-06-08
  • 1970-01-01
  • 1970-01-01
  • 2020-03-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多