使用Matlab对曲线进行平滑处理中的矩阵、向量操作

接上一篇文章。https://blog.csdn.net/kunshao_07/article/details/80809631

    需求

    想要对两个列向量形成的曲线进行平滑处理。参考了@_Flamingo_的处理方法:https://blog.csdn.net/steelbasalt/article/details/48756143。两个列向量如下所示:



    过程

    1. 直接开搞


    报错!


    原因就出在[[a(1) a a(end)];[b(1) b b(end)]]操作不能把两个列向量转换为想要的两列矩阵或两行矩阵。

    2. 先对a,b进行转置,使用转置操作“ ' ”,即c=a',则将列向量转换为行向量,后面的操作就一样了。


    

    注意

    请比较下面两个矩阵

    



    f比e首尾各多1列,这是由于f在造阵过程中增加的c(1)、c(end)、d(1)、d(end)。

    为什么这么做呢?请将下面程序的结果与上述结果比较:

    


    首尾各少了一个点,导致首尾各少了一段曲线!这应该是函数spcrv造成的,请在使用中注意。从下图也可以看出,前者的程序中,values一共产生了194个点使曲线更平滑;而后者的程序中,values一共产生了162个点,更少了。


    spcrv的作用就是插入更多的点,从而使曲线更平滑!

猜你喜欢

转载自blog.csdn.net/kunshao_07/article/details/80810033