Sorting numbers according to elements of an array

4 Ansichten (letzte 30 Tage)
Hans123
Hans123 am 29 Mai 2020
Bearbeitet: per isakson am 29 Mai 2020
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

Akzeptierte Antwort

KSSV
KSSV am 29 Mai 2020
Bearbeitet: KSSV am 29 Mai 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)

Weitere Antworten (1)

per isakson
per isakson am 29 Mai 2020
Bearbeitet: per isakson am 29 Mai 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

Kategorien

Mehr zu Shifting and Sorting Matrices finden Sie in Help Center und File Exchange

Tags

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by