快乐的韭菜根根 2021-10-07 17:25 采纳率: 100%
浏览 67
已结题

Matlab: 如何循环使用不同的插值方法

重复写命令看起来很蠢,我想使用循环的方法,但是出错了,希望大家帮忙改进改进,谢谢


x = [1,3,5,7,9,11,13,15,17,19];
x1 = 1:0.1:19;
y = [5.9,6.4,7.8,7.6,6.9,5.2,3.4,1.5,-0.7,-2];
s3 = [y1,y2,y3,y4,y5];
s2 = ['linear','nearest','pchip','spline'];
s1 = [p1,p2,p3,p4,p5];
for i=1:4
    p = interp1(x,y,x1,s2(i));
    s3(i) = polyval(p,xi)
end
% 以下是重复写的命令
p1 = interp1(x,y,x1,'linear');
p2 = interp1(x,y,x1,'spline');
p3 = interp1(x,y,x1,'pchip');
p4 = interp1(x,y,x1,'nearest');
p5 = polyfit(x,y,4)
xi = 10;
y1 = polyval(p1,xi)
y2 = polyval(p2,xi)
y3 = polyval(p3,xi)
y4 = polyval(p4,xi)
y5 = polyval(p5,xi)

img

  • 写回答

1条回答 默认 最新

  • joel_1993 2021-10-07 17:48
    关注

    你好,想要批量吗?

    x = [1,3,5,7,9,11,13,15,17,19];
    x1 = 1:0.1:19;
    y = [5.9,6.4,7.8,7.6,6.9,5.2,3.4,1.5,-0.7,-2];
    s3 = zeros(5,numel(x1));
    s2 = {'linear','nearest','pchip','spline'};
    xi = 10;
    yy = zeros(5,1);
    for i=1:4
        s3(i,:) = interp1(x,y,x1,s2{i});
        yy(i) = polyval( s3(i,:), xi);
    end
    yy
    
    

    yy五个数就是你需要的y1、y2 、 y3、y4、 y5

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 10月15日
  • 已采纳回答 10月7日
  • 创建了问题 10月7日

悬赏问题

  • ¥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电路设计