Place(s) of greatest deviation
Afficher commentaires plus anciens
Hi Everyone,
Suppose I have a vector Y:
Y = [0 0 0 0.5 0.5]
and a vector X
X = [0 0 0 1 1]
Now I wish to find the place of greatest (absolute) deviation between Y and X. Now, there are two such places, but if I use the following:
[~,I] = max(abs(X-Y))
then the answer is always 4. But 5 has an equally large deviation. What I really wish in such ties is to be returned a random place (out of the ties).
Any hints how to solve this problem?
Regards,
Ulrik.
Réponses (1)
Oleg Komarov
le 15 Mai 2011
Y = [0 0 0 0.5 0.5];
X = [0 0 0 1 1];
absdiff = abs(X-Y);
pos = find(max(absdiff) == absdiff); % or [trash,pos] = ismember(max(absdiff),absdiff);
pos(randi(numel(pos),1))
Try to execute several times to see the random selection between position 4 and 5.
Catégories
En savoir plus sur Programming dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!