Sorting numbers according to elements of an array

3 visualizzazioni (ultimi 30 giorni)
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

Risposta accettata

KSSV
KSSV il 29 Mag 2020
Modificato: KSSV il 29 Mag 2020
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)

Più risposte (1)

per isakson
per isakson il 29 Mag 2020
Modificato: per isakson il 29 Mag 2020
Without comment:
>> [~,ix]=min(abs(SORTING-input))
ix =
1
>> SORTING(ix)
ans =
3
>>
>> [~,ix]=min(abs(SORTING-12))
ix =
3
>> SORTING(ix)
ans =
11

Categorie

Scopri di più su Shifting and Sorting Matrices in Help Center e File Exchange

Tag

Prodotti

Community Treasure Hunt

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

Start Hunting!

Translated by