TriScatteredInterp on scattered dataset with duplicates
조회 수: 1 (최근 30일)
이전 댓글 표시
I am facing a problem that is driving me crazy and I hope that someone will be able to help me...
According to the MATLAB documentation, applying the TriScatteredInterp function on a scattered dataset with duplicates will implicitly remove the duplicates and average the associated data values. Now consider the simple test code
clear all;
% Create x- and y-coordinates of three random points in the 2D plane
X = rand(3,2);
% Duplicate all three points
X = [X;X];
% Assign value 100 to original points and value 0 to duplicates
V = [100*ones(3,1);zeros(3,1)];
% Merge points and values into one matrix
A = [X V];
% ! Critical line !
% A = sortrows(A);
% Construct interpolant
% Duplicates should be removed and associated values should be averaged to 50
F = TriScatteredInterp(A(:,1:2),A(:,3));
% Output values
F.V
In this form, the output is
ans =
50
50
50
as expected. However, upon uncommenting of the critical code line with the sortrows command, the output becomes
ans =
50
100
50
and something is wrong. I believe that the order of the scattered data (and hence the critical code line) should not play any role, should it? What's going on here? I am using MATLAB R2010a.
Any help is appreciated.
Rui
댓글 수: 0
답변 (2개)
Jonas
2012년 7월 11일
Er... I obtain the 50-50-50 in both cases...
댓글 수: 1
Jonas
2012년 7월 11일
But I have this warning, in fact: "Warning: Duplicate data points have been detected and removed - corresponding values have been averaged. " In both cases. I have the 2012a version. Maybe this bug has been corrected between your Matlab version and my one?
참고 항목
카테고리
Help Center 및 File Exchange에서 Matrix Indexing에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!