盆栽君要冬眠.�. 2023-04-03 11:31 采纳率: 50%
浏览 8
已结题

interp1执行后没有反应

MATLAB 一段程序在窗口输入界面一直没有反应,CTRL+C停下后显示interp1 执行不出来,不知道如何解决?

  • 写回答

2条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-04-03 14:52
    关注
    • 这篇博客: MATLAB自带插值函数中的 一、interp1 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
    • 1、函数简介

         MATLAB中的插值函数为interp1,其调用格式为:yi= interp1(x,y,xi,'method'),

         其中x,y为初始插值点,xi为给定的插值点,yi为在被插值点xi处的插值结果。

        'method'表示采用的插值方法,MATLAB提供的插值方法有几种: 
        'nearest'是最邻近插值, 'linear'线性插值; 'spline'三次样条插值; 'pchip'立方插值.缺省时表示线性插值
         注意:所有的插值方法都要求x是单调的,并且xi不能够超过x的范围。

      2、用法示例

      % 绘制散点图
      clc
      clear
      close
      tem=[2 2 0 2 2 2 2 3 5 7 9 10 11 12 12 11 10 9 7 7 6 6 5 5];
      time=1:24;
      plot(time,tem,'o')
      hold on
      
      % 第一种用法
      xq=1:0.1:24;
      vq=interp1(time,tem,xq);
      plot(xq,vq) %绘制插值曲线
      close
      %第二种用法
      % linear  线形(默认)
      % nearest 临近点
      % next    下一个
      % previous 前一个
      % pchip 保形分段三次插值
      % cubic 
      % v5cubic
      % spline  三次方样条数据插值
      
      % 线性
      subplot(2,3,1)
      xq=1:0.5:24;
      vq=interp1(time,tem,xq,'linear');
      plot(xq,vq,'*')
      title('linear')
      
      % 临近点
      subplot(2,3,2)
      xq=1:0.5:24;
      vq=interp1(time,tem,xq,'nearest');
      plot(xq,vq,'*')
      title('nearest')
      
      % next
      subplot(2,3,3)
      xq=1:0.5:24;
      vq=interp1(time,tem,xq,'next');
      plot(xq,vq,'*')
      title('next')
      
      
      % previous
      subplot(2,3,4)
      xq=1:0.5:24;
      vq=interp1(time,tem,xq,'previous');
      plot(xq,vq,'*')
      title('previous')
      
      % pchip
      subplot(2,3,5)
      xq=1:0.5:24;
      vq=interp1(time,tem,xq,'pchip');
      plot(xq,vq,'*')
      title('pchip')
      
      % spline
      subplot(2,3,6)
      xq=1:0.5:24;
      vq=interp1(time,tem,xq,'spline');
      plot(xq,vq,'*')
      title('spline');
      close
      % 第三种 取出插值多项式的系数
      %v = ppval(pp,xq) 在查询点 xq 处计算分段多项式 pp。
      x=0:0.5:2*pi;
      y=sin(x);
      p=interp1(x,y,'spline','pp'); %% 返回各个分段插值多项式p的系数
      yy=ppval(p,linspace(0,2*pi,101));
      plot(x,y,'o',linspace(0,2*pi,101),yy);
      % 第四种
      x=0:0.5:2*pi;
      y=sin(x);
      xi=-1:0.2:7;
      p=interp1(x,y,xi,'spline') ;%插值区间xi超出样本区间x自动外推
      p=interp1(x,y,xi,'linear','extrap'); %加上'extrap'自动外推
      plot(x,y,'o',xi,p);
      p=interp1(x,y,xi,'next','extrap'); %加上'extrap'自动外推
      p=interp1(x,y,xi,'nearest',9);%令超出范围的数值为9
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 4月18日
  • 已采纳回答 4月10日
  • 创建了问题 4月3日

悬赏问题

  • ¥15 想用@vueuse 把项目动态改成深色主题,localStorge里面的vueuse-color-scheme一开始就给我改成了dark,不知道什么原因(相关搜索:背景颜色)
  • ¥20 OPENVPN连接问题
  • ¥15 flask实现搜索框访问数据库
  • ¥15 mrk3399刷完安卓11后投屏调试只能显示一个设备
  • ¥100 如何用js写一个游戏云存档
  • ¥15 ansys fluent计算闪退
  • ¥15 有关wireshark抓包的问题
  • ¥15 需要写计算过程,不要写代码,求解答,数据都在图上
  • ¥15 向数据表用newid方式插入GUID问题
  • ¥15 multisim电路设计