• Matlab中插值函数汇总(下)


          Matlab中插值函数汇总分上下两个部分,主要整合自matlabsky论坛dynamic发表于2009-2-21 21:53:26 的主题帖,以及豆丁网rickoon上传的教材第8章《插值,拟合与查表》;实际上,它很多内容都可以从Matlab-help有关插值函数部分找到对应的部分。博文在整合这两个部分时,对其中的某些细节做了注解(【标以红色的文字】),并对行文方式做了重新编排,去掉了一些不必要的运行结果(这些结果只要将代码复制到Matlab窗口即可得到)。 

          命令5——interpft
           功能:用快速Fourier 算法作一维插值
           格式 
           (1)y = interpft(x,n) 
           返回包含周期函数x 在重采样的n 个等距的点的插值y。若length(x)=m,且x 有采样间隔dx,则新的y 的采样间隔dy=dx*m/n。注意的是必须n≥m。若x 为一矩阵,则按x 的列进行计算。返回的矩阵y 有与x 相同的列数,但有n 行。
           (2)y = interpft(x,n,dim) 
           沿着指定的方向dim 进行计算

           命令6—— griddata
           功能 数据格点
           格式 
           (1)ZI = griddata(x,y,z,XI,YI) 
           用二元函数z=f(x,y)的曲面拟合有不规则的数据向量x,y,z。griddata 将返回曲面z 在点(XI,YI)处的插值。曲面总是经过这些数据点(x,y,z)的。输入参量(XI,YI)通常是规则的格点(像用命令meshgrid 生成的一样)。XI 可以是一行向量,这时XI 指定一有常数列向量的矩阵。类似地,YI 可以是一列向量,它指定一有常数行向量的矩阵。
           (2)[XI,YI,ZI] = griddata(x,y,z,xi,yi) 
           返回的矩阵ZI 含义同上,同时,返回的矩阵XI,YI 是由行向量xi 与列向量yi 用命令meshgrid 生成的。
           (3)[XI,YI,ZI] = griddata(.......,method) 
           用指定的算法method 计算:
           ‘linear’:基于三角形的线性插值(缺省算法);
           ‘cubic’: 基于三角形的三次插值;
           ‘nearest’:最邻近插值法;
           ‘v4’:MATLAB 4 中的griddata 算法。

           命令7—— meshgrid
           功能:生成用于画三维图形的矩阵数据。
           格式: [X,Y] = meshgrid(x,y)

           将由向量x,y(可以是不同方向的)指定的区域[min(x),max(x) , min(y) , max(y)] 用直线x=x(i),y=y(j) ( i=1,2,…,length(x) ,j=1,2,…,length(y))进行划分。这样,得到了length(x)*length(y)个点,这些点的横坐标用矩阵X 表示,X 的每个行向量与向量x 相同;这些点的纵坐标用矩阵Y 表示,Y 的每个列向量与向量y 相同。其中X,Y可用于计算二元函数z=f(x,y)与三维图形中xy 平面矩形定义域的划分或曲面作图。
           [X,Y] = meshgrid(x) %等价于[X,Y]=meshgrid(x,x)。
           [X,Y,Z] = meshgrid(x,y,z) %生成三维阵列X,Y,Z,用于计算三元函数v=f(x,y,z)或三维容积图。
           例7   
    [X,Y] = meshgrid(1:3,10:14)

           命令8—— ndgrid

           功能:生成用于多维函数计算或多维插值用的阵列
           格式 [X1,X2,…,Xn] = ndgrid(x1,x2,…,xn) %把通过向量x1,x2,x3…,xn 指定的区域转换为数组x1,x2,x3,…,xn 。这样, 得到了 length(x1)*length(x2)*…*length(xn)个点,这些点的第一维坐标用矩阵X1 表示,X1 的每个第一维向量与向量x1 相同;这些点的第二维坐标用矩阵X2 表示,X2 的每个第二维向量与向量x2 相同;如此等等。
           其中X1,X2,…,Xn 可用于计算多元函数y=f(x1,x2,…,xn)以及多维插值命令用到的阵列。
           [X1,X2,…,Xn] = ndgrid(x) %等价于[X1,X2,…,Xn] = ndgrid(x,x,…,x)

           

         【注,整合过程中去掉了spline这个命令,因为会在另外的博文中详细阐述,另外还去掉了tabel1和tabel2,因为它们在运行时均出现了: ??? Undefined function or method 'table1' for input arguments of type 'double'.原因尚不清楚】

    原文网址:

    [1] http://www.matlabsky.com/forum.php?mod=viewthread&tid=690&extra=&ordertype=1&page=1   

    [2] http://www.docin.com/p-736209256.html  http://blog.sina.com.cn/s/blog_6fd9615d01012ecz.html

  • 相关阅读:
    详细了解SQLITE 优缺点 性能测试
    特例 FOR 循环
    java获得CPU使用率,系统内存,虚拟…
    中国历史表
    java 内部类
    JAVA 修饰符
    ubuntu android 命令环境下操作sqlite
    ANDROID 绝对布局 相对布局 Linear…
    JAVA 取系统当前日期 少8个小时
    linux 根目录下的子目录的意义
  • 原文地址:https://www.cnblogs.com/panscience/p/5057665.html
Copyright © 2020-2023  润新知