插值函数 interp1 interp2

1、一维插值 interp1

clc;
clear;
close all;

x0=0:1:2*pi;
y0=sin(x0);

x=0:0.5:2*pi;

y = interp1(x0,y0,x,'spline');

figure(1);
plot(x0,y0);hold on;plot(x,y);
grid on;
xlabel('x0');ylabel('y0');title("һά²喵");legend('y0','y');

插值函数 interp1 interp2_第1张图片

2、二维插值 interp2

   搜索域:

   横坐标范围col (-5) ~ (+5)
   纵坐标范围row (-3) ~ (+3)

   值域:

   与上述搜索范围一一对应

   搜索坐标:

   ( x, y)

   返回值:

   搜索坐标在搜索域内取得的值

clc;
clear;
close all;

col = -5:5;
row = -3:3;
[map_x, map_y] = meshgrid(col,row);

for i=1:length(row)
    for j=1:length(col)
        region(i,j) = ((i-1)*length(col)+j)*10;
    end
end

region

%% x:(-5 5)   y:(-3 3)
x=2.4;
y=2.5;
if x>5
    x=5;
elseif x<-5
    x=-5;
end

if y>3
    y=3;
elseif y<-3
    y=-3;
end
    
value = interp2(map_x, map_y, region, x, y);

fprintf("search (%d, %d) : %d\n", x, y, value);


simulink中使用的插值模块: Lookup Tables

你可能感兴趣的:(matlab学习)