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

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 无线电能传输系统MATLAB仿真问题
  • ¥50 如何用脚本实现输入法的热键设置
  • ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
  • ¥30 深度学习,前后端连接
  • ¥15 孟德尔随机化结果不一致
  • ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
  • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
  • ¥15 谁有desed数据集呀
  • ¥20 手写数字识别运行c仿真时,程序报错错误代码sim211-100
  • ¥15 关于#hadoop#的问题