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

25 views (last 30 days)
MathWorks Support Team
MathWorks Support Team on 14 Nov 2024 at 0:00
Answered: MathWorks Support Team on 14 Nov 2024 at 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を使って最も近い時間を見つけるにはどうすればよいでしょうか?

Accepted Answer

MathWorks Support Team
MathWorks Support Team on 14 Nov 2024 at 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はその列の最初の要素を選択することに注意してください。 

More Answers (0)

Categories

Find more on ビッグ データの処理 in Help Center and File Exchange

Tags

No tags entered yet.

Community Treasure Hunt

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

Start Hunting!