フィルターのクリア

How to choose value from array based on closest value

4 ビュー (過去 30 日間)
Alex
Alex 2022 年 7 月 13 日
回答済み: Ruchika P Barman 2022 年 7 月 13 日
I have a 41x2 array. I want to take an input variable, find the closest value in the first column, and assign the corresponding value in the second column to a new variable.
Any pointers on how I would go about doing this?
For example:
  1. Input value is x = 3.2
  2. Search first column in array for 3.2
  3. Closest value is 3
  4. Value in 2nd column corresponding to 3 is 500
  5. Store 500 to new variable y
Thanks!

採用された回答

Walter Roberson
Walter Roberson 2022 年 7 月 13 日
If the values in the first column are sorted, use interp1() with 'nearest'
  1 件のコメント
Alex
Alex 2022 年 7 月 13 日
This worked perfectly, thanks!

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

その他の回答 (1 件)

Ruchika P Barman
Ruchika P Barman 2022 年 7 月 13 日
It is my understanding that you are trying to get the element closest to the input number by comparing with all the elements in the matrix column-wise. The following code should be able to achieve the same.
V=[0.87]
V = 0.8700
arr = rand(41,2)
arr = 41×2
0.0928 0.4712 0.5737 0.6716 0.0275 0.0357 0.3457 0.5579 0.6198 0.3686 0.1062 0.9167 0.5590 0.4408 0.1859 0.6384 0.8755 0.7567 0.3914 0.0726
for c=1:2
N=arr(:,c);
A = repmat(N,[1 length(V)]);
[minValue,closestIndex] = min(abs(A-V'));
closestValue = N(closestIndex);
V=closestValue;
end
V
V = 0.8895

カテゴリ

Help Center および File ExchangeMatrices and Arrays についてさらに検索

製品


リリース

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by