Sorting numbers according to elements of an array

Sorry for the vague title, I asked a similar question earlier very poorly and I extracted the most fundamental concept that I am trying to wrap my head around and I hope I will be articulate enough this time.
I want to sort elements accordingly;
I have 3 elements in my SORTING array, 3, 7 and 11
My input is 4.1, since this is closest to 3, the output will be equal to 3. Looking at it, it seems intuitive but I am struggling on how to break this down to explain it to MATLAB
In reality I am working with numbers sensitive to the 4th decimal place, but I am trying to understand the concept behind this sorting method
SORTING = [3 7 11]';
input = 4.1;
%code to compute which number it is closest to
output = 3;
%further calulcations based on output

 採用された回答

KSSV
KSSV 2020 年 5 月 29 日
編集済み: KSSV 2020 年 5 月 29 日

1 投票

SORTING = [3 7 11]';
input = 4.1;
%code to compute which number it is closest to
% output = 3;
% GEt the absolute difference with given input and it's minimum
[val,idx] = min(abs(SORTING-input)) ;
output = SORTING(idx)

その他の回答 (1 件)

per isakson
per isakson 2020 年 5 月 29 日
編集済み: per isakson 2020 年 5 月 29 日

1 投票

Without comment:
>> [~,ix]=min(abs(SORTING-input))
ix =
1
>> SORTING(ix)
ans =
3
>>
>> [~,ix]=min(abs(SORTING-12))
ix =
3
>> SORTING(ix)
ans =
11

カテゴリ

ヘルプ センター および File ExchangeShifting and Sorting Matrices についてさらに検索

製品

タグ

質問済み:

2020 年 5 月 29 日

編集済み:

2020 年 5 月 29 日

Community Treasure Hunt

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

Start Hunting!

Translated by