盆栽君要冬眠.�. 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 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)