配列の中から目的値に最も近い値を取り出すには?

73 ビュー (過去 30 日間)
MathWorks Support Team
MathWorks Support Team 2024 年 11 月 14 日 0:00
回答済み: MathWorks Support Team 2024 年 11 月 14 日 6:05

以下のような2つのベクトル(タイムスタンプ)があります。

V N
1375471092848936 1375473384440853
1375473388165900 1375471277856598
1375471320476780 1375473388165900
1375473388947681 1375471322465961
1375473392527002 1375471335206288
...
Vに対してNの中で最も近い時間を見つけたいです(つまり、Vにほぼ等しいNの時間を見つけたい)。フレームはW = 1e4であり、さらにVはN-WとN+Wの間にある必要があります。このような条件で、MATLABを使って最も近い時間を見つけるにはどうすればよいでしょうか?

採用された回答

MathWorks Support Team
MathWorks Support Team 2024 年 11 月 14 日 0:00
ベクトルVの各要素に対して、ベクトルNの中で最も近い値を計算するには、以下のMATLABコードをお試しください。例として、以下のようなベクトルNとVを使用します:
% 例のベクトル V = randi(10,[5 1]); N = randi(10,[5 1]); % NをVの長さに合わせて複製 A = repmat(N,[1 length(V)]); % 最小値とそのインデックスを求める [minValue,closestIndex] = min(abs(A-V')); % 最も近い値を取得 closestValue = N(closestIndex);
各列で最小値が同じ場合、MATLABはその列の最初の要素を選択することに注意してください。 

その他の回答 (0 件)

カテゴリ

Help Center および File Exchangeビッグ データの処理 についてさらに検索

タグ

タグが未入力です。

Community Treasure Hunt

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

Start Hunting!