scatteredInterpolant gives null matrix for collinear data . .

조회 수: 27 (최근 30일)
Parthu P
Parthu P 2020년 1월 10일
답변: Farough Rahimzadeh 2022년 3월 29일
Hello, I want to interpolate scattered data (x,y,z). x and y are collinear (x and y = [0.05 0.1 0.15 0.20 0.25 0.3 0.35 0.4 0.45 0.5 0.55 0.6] ).
When I use:
F = scatteredInterpolant(x, y, z);
[Xq, Yq] = meshgrid(x, y);
Zq = F(Xq, Yq);
I get empty Zq with following error : The underlying triangulation is empty - the points may be collinear.
Please help me on this.
  댓글 수: 2
Walter Roberson
Walter Roberson 2020년 1월 10일
Add a small random offset to x and y so that they are not colinear
Parthu P
Parthu P 2020년 1월 11일
Thanks a lot!
It worked very well.

댓글을 달려면 로그인하십시오.

답변 (2개)

Image Analyst
Image Analyst 2020년 1월 11일
Use interp1() instead.

Farough Rahimzadeh
Farough Rahimzadeh 2022년 3월 29일
One trick you can do is to add one number to the end the array to remove the collinear correlation.
For example, my data is gravitational force at certain coordinates. Because I know gravitational force at 1e8 distance is roughphy equal to zero, I added one addition point of (1e8, -1e8, 0) to the data set to remove the linear correltion.
x = [1 2 3 4 5, 1e8];
y = [1 2 3 4 5, -1e8];
z = [1.8 1.2 2.2 1.9 1.2, 0];

카테고리

Help CenterFile Exchange에서 Interpolation에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by