Place(s) of greatest deviation
Show older comments
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.
Answers (1)
Oleg Komarov
on 15 May 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.
Categories
Find more on Creating and Concatenating Matrices in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!