フィルターのクリア

Place(s) of greatest deviation

1 回表示 (過去 30 日間)
Ulrik Nash
Ulrik Nash 2011 年 5 月 15 日
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.

回答 (1 件)

Oleg Komarov
Oleg Komarov 2011 年 5 月 15 日
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.

カテゴリ

Help Center および File ExchangeLogical についてさらに検索

タグ

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by