快乐的韭菜根根 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日

悬赏问题

  • ¥20 5037端口被adb自己占了
  • ¥15 python:excel数据写入多个对应word文档
  • ¥60 全一数分解素因子和素数循环节位数
  • ¥15 ffmpeg如何安装到虚拟环境
  • ¥188 寻找能做王者评分提取的
  • ¥15 matlab用simulink求解一个二阶微分方程,要求截图
  • ¥30 乘子法解约束最优化问题的matlab代码文件,最好有matlab代码文件
  • ¥15 写论文,需要数据支撑
  • ¥15 identifier of an instance of 类 was altered from xx to xx错误
  • ¥100 反编译微信小游戏求指导