Index of the row
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
Hi,
I have a 5000 by 1 vector and I have a scalar, which is NOT part of the vector. I want to find the row number of the closest value to the scalar in the vector. The vector contains both positive and negative numbers and the scalar can be positive and negative too.
Anyone an idea of how to code this in Matlab.
Many thanks
0 Kommentare
Antworten (2)
Azzi Abdelmalek
am 8 Jul. 2016
Bearbeitet: Azzi Abdelmalek
am 8 Jul. 2016
[~,idx]=min(abs(your_vector-threshold))
Star Strider
am 8 Jul. 2016
This workd:
vector = randi([-99,99], 100, 1); % Create Data
scalar = 100*(rand-0.5); % Create Data
[vs,idx] = sort(vector); % Sort
q = find(vs <= scalar, 1, 'last'); % Find Lowest Close Value
[q2,ixm] = min(vs([q, q+1])); % Mininmum Distance
nearest = vs(q+ixm-1) % Result
2 Kommentare
Star Strider
am 8 Jul. 2016
The ‘vs’ array is the sorted ‘vector’. The ‘idx’ vector are the original indices of the elements of the sorted vector. If you want the index instead of the value for ‘nearest’, that assignment becomes:
nearest_idx = idx(q+ixm-1)
Siehe auch
Kategorien
Mehr zu Shifting and Sorting Matrices finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!