TriScatteredInterp on scattered dataset with duplicates
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
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 commentaires
Réponses (2)
Jonas
le 11 Juil 2012
Er... I obtain the 50-50-50 in both cases...
1 commentaire
Jonas
le 11 Juil 2012
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?
Voir également
Catégories
En savoir plus sur Matrix Indexing dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!