如何在matlab中使用插值生成曲面
我有x y z数据,如下所示: 如何在matlab(插值曲面)中使用z值跨直线创建曲面 我尝试了此方法,但出现以下错误:如何在matlab中使用插值生成曲面,matlab,Matlab,我有x y z数据,如下所示: 如何在matlab(插值曲面)中使用z值跨直线创建曲面 我尝试了此方法,但出现以下错误: [fn,pn] = uigetfile('*.xyz','Open the file'); I = importdata([pn,fn], ',', 16); x = I.data(:,1); y = I.data(:,2); z = I.data(:,3); %% spX = min(x):3:max(x); spY = min(y):3:max(y);
[fn,pn] = uigetfile('*.xyz','Open the file');
I = importdata([pn,fn], ',', 16);
x = I.data(:,1);
y = I.data(:,2);
z = I.data(:,3);
%%
spX = min(x):3:max(x);
spY = min(y):3:max(y);
[xC,yC] = meshgrid(spX,spY);
Vq = interp2(x,y,z,xC,yC);
使用GridDedInterplant时出错
网格向量必须严格单调递增
interp2>makegriddedinterp中出错(第229行)
F=GridDedInterplant(varargin{:})
interp2中的错误(第129行)
F=makegriddedinterp({X,Y},V,method,extrap) 尝试griddata
spX = min(x):3:max(x);
spY = min(y):3:max(y);
[xC,yC] = meshgrid(spX,spY);
zC = griddata(x,y,z,xC,yC);
surf(xC,yC,zC)
尝试griddata
spX = min(x):3:max(x);
spY = min(y):3:max(y);
[xC,yC] = meshgrid(spX,spY);
zC = griddata(x,y,z,xC,yC);
surf(xC,yC,zC)
你查过文件了吗?有一个这样的例子。您有
[x,y,z]
数据,并使用interp2
函数进行插值,以获得更精细的网格,并使用surf
进行绘图。我更新了问题,尝试了上述方法,但在没有看到实际数据的情况下出现了错误,很难详细说明,但前提是x
和y
是矢量(就像在代码x=I.data(:,1);
中一样,z
变量应该是一个包含长度(Y)行和长度(x)列的矩阵。要转换数据,可以尝试执行或使用文件交换[xyz2grid()函数。您检查过文档了吗?有一个与此完全相同的示例。您有[x,Y,z]
使用interp2
函数进行数据和插值,以获得更精细的网格,并使用surf
进行绘图。我更新了问题,尝试了上述方法,但在没有看到实际数据的情况下出现了错误,很难详细说明,但前提是x
和y
是矢量(就像在代码x=I.data(:,1);
中一样,z
变量应该是一个包含长度(Y)行和长度(x)列的矩阵。要转换数据,可以尝试执行或使用文件交换[xyz2grid()函数。