2016-09-22 2 views
0

мне нужно извлечь значение данных для конкретной координаты из meshgrid в MATLAB, мой код выглядит следующим образом:Извлечение значения данных из выходного meshgrid MATLAB

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 (массив был слишком большим до этого). Мне нужно извлечь интерполированные значения Z в vq из определенных координат X и Y.

ответ

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 (но я не уверен, что она работает с griddata).

+0

К сожалению, я получаю эту ошибку: индекс превышает размеры матрицы. Ошибка в Интерполяция (строка 18) fprintf ('интерполированное значение при х =% г и у =% г является % г', PaarX1 (n1), PaarY1 (П2), VQ (n1, n2)) – Jay

+0

Я думаю, что это означает, что индекс не содержит значений координат X и Y. – Jay

+0

OK! Я вижу, что вы используете 'meshgrid'. Я исправил свой ответ. –

Смежные вопросы