matlab中用plot函数绘制的常用设置以及五点三次平滑法的实现

1、导入数据(我的是excel数据)
matlab中用plot函数绘制的常用设置以及五点三次平滑法的实现
matlab中用plot函数绘制的常用设置以及五点三次平滑法的实现
2、导入数据后在右侧会产生新的变量,再将这三列中需要的数据单独拿出来作为x,y轴的数据,方法是:选中,再点击“根据所选内容创建变量”
matlab中用plot函数绘制的常用设置以及五点三次平滑法的实现
matlab中用plot函数绘制的常用设置以及五点三次平滑法的实现

3、此时的变量是table类型,输入函数无效,需要将他转换为数组,在命令行输入X80=table2array(x80),即可以将x80的表数据转换为X80的数组数据。
matlab中用plot函数绘制的常用设置以及五点三次平滑法的实现

4、在命令行输入以下命令可以将数据量缩小,也就是每100个点取一次平均值,生成一个新的数组。(数据点实际上是33977个,但每100个点取平均,应该是100的倍数,将多的数再取一次平均,添加到数组里,直接打开输入就可以)
a=X80;
ma=[];
for k=1????33900
ma=[ma,mean(a(k:k+99))];
end

5、得到新的数组后,对其用plot函数画图,由于数据量大,且曲线振动幅度大,经插值、拟合等方法平滑后,效果不太乐观,所以这里采用了五点三次平滑的方法,具体代码如下:
function y=mean5_3(x,m)
% x为被处理的数据
% m 为循环次数
n=length(x);
a=x;
for k=1: m
b(1) = (69a(1) +4(a(2) +a(4)) -6a(3) -a(5)) /70;
b(2) = (2
(a(1) +a(5)) +27a(2) +12a(3) -8a(4)) /35;
for j=3:n-2
b (j) = (-3
(a(j-2) +a(j+2)) +12*(a(j-1) +a(j+1)) +17a(j)) /35;
end
b (n-1) = (2
(a(n) +a(n-4)) +27a(n-1) +12a(n-2) -8a(n-3)) /35;
b (n) = (69
a(n) +4* (a(n-1) +a(n-3)) -6*a(n-2) -a(n-4)) /70;
a=b;
end
y =a;
%以上是函数定义,下面是绘图的命令
figure(6);
q130=mean5_3(mn,200);
plot(mm,q130,‘m-’,‘linewidth’,1.5);ylim([0 1.1]); grid;

(五点三次平滑原网站:https://www.ilovematlab.cn/thread-71818-1-1.html)
matlab中用plot函数绘制的常用设置以及五点三次平滑法的实现
6、设置figure中横纵坐标的字体大小,代码如下:
figure(2);
set(gca,‘fontsize’,14);
7、可对其线型进行设置,由于数据过于密集,直接标记点的话,看起来极不美观,所以让数据每隔一段距离显示标记点,代码如下:
figure(2);
p=mean5_3(mb,200);
maker_idx2 = 1:30:length(ma);
plot(ma,p,‘k-*’,‘MarkerIndices’,maker_idx2)
matlab中用plot函数绘制的常用设置以及五点三次平滑法的实现

matlab中用plot函数绘制的常用设置以及五点三次平滑法的实现
8、将多条曲线显示在一个figure里,方法是:
(1)把图像的figure都打开,点击工具-编辑绘图
(2)在一个图中选择曲线并复制,右键选copy
(3)把曲线贴到另一个figure中(同样按下Tool选项下的Edit plot 按钮,然后右键选paste)
(4)根据需要加legend。
matlab中用plot函数绘制的常用设置以及五点三次平滑法的实现