フィルターのクリア

Index of the row

1 回表示 (過去 30 日間)
Imner Renmi
Imner Renmi 2016 年 7 月 8 日
コメント済み: Star Strider 2016 年 7 月 8 日
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

回答 (2 件)

Azzi Abdelmalek
Azzi Abdelmalek 2016 年 7 月 8 日
編集済み: Azzi Abdelmalek 2016 年 7 月 8 日
[~,idx]=min(abs(your_vector-threshold))
  1 件のコメント
Imner Renmi
Imner Renmi 2016 年 7 月 8 日
Just to be sure, it will also work well for the negative values right?

サインインしてコメントする。


Star Strider
Star Strider 2016 年 7 月 8 日
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 件のコメント
Imner Renmi
Imner Renmi 2016 年 7 月 8 日
What are 'vs' and 'idx'?
Star Strider
Star Strider 2016 年 7 月 8 日
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)

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeShifting and Sorting Matrices についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by