Interp2 a set of randomly sampled points?
조회 수: 2 (최근 30일)
이전 댓글 표시
Hello All,
I am given the following information with no guarantee on any particular order or sample spacing (there could be holes. Roughly on a hexagonal grid, but not precicely...)
- Vectors of X and Y locations corresponding to a same-sized vector of complex values which I want to interpolate.
I've written the following test case which works great:
% Simple test case first to test handling of phasors:
test = [0 2*pi 0.1;
-0.1 0 -2*pi;
0 0 0;]
test = exp(1i*test);
[testX, testY] = meshgrid(1:3)
interpX = [1.5; 2.5; 2.1];
interpY = [1.5; 1.5; 2];
testInterp = interp2(testX,testY,test, interpX, interpY);
angle(testInterp)
% It works!
Unfortunately, I don't get my data in these nicely formatted and arranged square matricies. I get them in vectors, which don't have any particular order. I modified the above code to mimic this, and get errors complaining that the vectors are no longer monotonically increasing... I've tried sorting the data by x or y, but I keep getting the errors. Since the x coords are coupled with the y coords, I can't sort both x and y at the same time (does that make sense?). Any way, maybe the code below helps:
test = [0 2*pi 0.1;
-0.1 0 -2*pi;
0 0 0;]
test = exp(1i*test);
[testX, testY] = meshgrid(1:3)
interpX = [1.5; 2.5; 2.1];
interpY = [1.5; 1.5; 2];
combinedVector = [testX(:), testY(:), test(:)];
combinedVector = sortrows(combinedVector, [2 1]);
testInterp = interp2(combinedVector(:,1),combinedVector(:,2),combinedVector(:,3), interpX, interpY);
angle(testInterp)
Thoughts?? -Mike
채택된 답변
MikeStein
2013년 7월 25일
댓글 수: 3
dpb
2013년 7월 25일
Jim has it basically between interp2 and triscattered
I don't know about the FEX submission but you can also look at
*griddata"
There's a decent background section in the doc's on interpolating scattered data that outlines at least the basics of the methods implemented
추가 답변 (0개)
참고 항목
제품
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!