最近才接触MATLAB三维插值,自己尝试简单的写了一个代码,但出现了以下错误,请问该如何解决?

代妈如下:
clc,clear
data1=xlsread('test.xlsx');
data2=xlsread('验证集.xlsm');
x=data1(:,4);
y=data1(:,5);
z=data1(:,6);
% z = [53 60.4000 101.4000 82.5000 106.3000 101.1000 102.5000 74.6000 74.4000 101.8000 136.2000 167.6000 835.9000 609.8000 36 36.9000 37];
v=data1(:,8);
xi=data2(:,4);
yi=data2(:,5);
zi=data2(:,6);
vi=interp3(x,y,z,v,xi,yi,zi);
错误:

img

建议直接用scatteredInterpolant函数

修改过的代码:
clc,clear
data1=xlsread('test.xlsx');
data2=xlsread('验证集.xlsm');
x=data1(:,4);
y=data1(:,5);
z=data1(:,6);
v=data1(:,8);
xi=data2(:,4);
yi=data2(:,5);
zi=data2(:,6);

F = griddedInterpolant(x,y,z,v,'nearest');
vi = F(xi,yi,zi);
plot(xi,yi,vi,'ro')

还是出现相同的错误

img