我需要在MATLAB中从meshgrid中提取特定坐标的数据值,我的代码如下:
PaarX=Paar(:,1);
PaarX1=PaarX(1:20:length(PaarX));
PaarY=Paar(:,2);
PaarY1=PaarY(1:20:length(PaarY));
x=PaarX;
y=PaarY;
v=Paar(:,3);
[xi, yi]=meshgrid(PaarX1, PaarY1);
vq=griddata(x, y, v, xi, yi, 'cubic');
PaarX
,PaarY
和v
是曲面的X,Y和Z值,Z值是要插值的值。 PaarX1
和PaarY1
是meshgrid中使用的每20个值的值(在此之前数组太大)。我需要从特定的X和Y坐标中提取vq
中的插值Z值。
答案 0 :(得分:0)
我理解你的问题,你需要这个:
nx = 3; % <= length(PaarX1)
ny = 4; % <= length(PaarY1)
fprintf('the interpolated value at x=%g and y=%g is %g',PaarX1(nx),PaarY1(ny),vq(ny,nx))
或者您可以转置矩阵vq
vq = vq.';
fprintf('the interpolated value at x=%g and y=%g is %g',PaarX1(nx),PaarY1(ny),vq(nx,ny))
vq(ny,nx)
(y
是第一个)是因为您使用meshgrid
函数。您可以使用vq(nx,ny)
形式的矩阵元素(x
是第一个)来访问ndgrid
函数(但我不确定它是否与{{1}一起使用})。