공간적으로 매핑된 두 개의 값 데이터 테이블이 있지만 한 테이블의 좌표가 두 번째 테이블의 좌표와 동일하지 않습니다. 이 테이블을 "결합"하고 싶지만 데이터가 좌표별로 일치하도록 하여 두 테이블 간의 공간적 변형 값을 비교할 수 있습니다.
모든 값에 대해 무차별 대입 계산 대신 이를 수행할 수 있는 쉬운 방법이 있는지 아는 사람이 있습니까? 몇 가지 흥미로운 행렬 함수가 있는 것 같지만 그 뒤에 숨어 있는 수학적 개념은 잘 모르겠습니다.
나는 내가 원하는 일을 전달하기를 희망하는 아래 프로세스의 모형을 가지고 있습니다.
더보기...| 엑스 | 와이 | V |
| 0 | 0 | 0 |
| 1 | 0 | 1 |
| 2 | 0 | 2 |
| 0 | 1 | 1 |
| 1 | 1 | 2 |
| 2 | 2 | 삼 |
| 0 | 2 | 2 |
| 1 | 2 | 삼 |
| 2 | 2 | 4 |
+
| 엑스 | 와이 |
| 0.5 | 0.5 |
| 1.5 | 0.5 |
| 0.5 | 1.5 |
| 1.5 | 1.5 |
=>
| 엑스 | 와이 | IV |
| 0.5 | 0.5 | 1 |
| 1.5 | 0.5 | 2 |
| 0.5 | 1.5 | 2 |
| 1.5 | 1.5 | 삼 |
폴리곤 레이아웃 데이터 테이블이 규칙적이고 완전한 경우

Names Default To Here( 1 );
// Create the example data tables
New Table( "Data",
Add Rows( 4 ),
New Column( "x", Numeric, "Continuous", Format( "Best", 12 ), Set Values( [0.5, 1.5, 0.5, 1.5] ) ),
New Column( "y", Numeric, "Continuous", Format( "Best", 12 ), Set Values( [0.5, 0.5, 1.5, 1.5] ) )
);
New Table( "Layout",
Add Rows( 9 ),
New Column( "X", Numeric, "Continuous", Format( "Best", 12 ), Set Values( [0, 1, 2, 0, 1, 2, 0, 1, 2] ) ),
New Column( "Y", Numeric, "Continuous", Format( "Best", 12 ), Set Values( [0, 0, 0, 1, 1, 1, 2, 2, 2] ) ),
New Column( "V", Numeric, "Continuous", Format( "Best", 12 ), Set Values( [0, 1, 2, 1, 2, 3, 2, 3, 4] ) ),
Set Row States( [8, 8, 8, 8, 8, 8, 8, 8, 8] ),
Set Label Columns( :V )
);
// Calculate the IV data
dtLookup = Data Table( "Layout" );
dtData = Data Table( "Data" );
dtData << New Column( "IV" );
For( i = 1, i <= N Rows( dtData ), i++,
xVal = dtData:X[i];
yVal = dtData:Y[i];
yMin = Col Max( If( dtLookup:Y < yVal, dtLookup:Y, . ) );
yMax = Col Min( If( dtLookup:Y > yVal, dtLookup:Y, . ) );
xMin = Col Max( If( dtLookup:X < xVal, dtLookup:X, . ) );
xMax = Col Min( If( dtLookup:X > xVal, dtLookup:X, . ) );
botLeft = dtLookup:V[(dtLookup << get rows where( :X == xMin & :Y == yMin ))[1]];
botRight = dtLookup:V[(dtLookup << get rows where( :X == xMax & :Y == yMin ))[1]];
topLeft = dtLookup:V[(dtLookup << get rows where( :X == xMin & :Y == yMax ))[1]];
topRight = dtLookup:V[(dtLookup << get rows where( :X == xMax & :Y == yMax ))[1]];
dtData:IV[i] = Mean( botLeft, botRight, topLeft, topRight );
);
IV는 XY(표 2) 테이블의 좌표를 이용하여 테이블에서 XYV(표 1)를 보간한 값이다.
IV의 가치를 어떻게 생각하는지 이해가 되지 않습니다.사용중인 규칙을 설명해 주시겠습니까?
내 생각에는 VPTree() 또는 Distance()가 여기에서 작동할 수 있을 것 같습니다(아마도 KDTable()). 하지만 연결에서는 무엇을 합니까?
가장 가까운 점을 찾는 것이 아니라 올바른 점을 이해했다면 같은 선의 점과 보간법을 찾는 것입니다.