配列の中から目的値に最も近い値を取り出すには?
35 views (last 30 days)
Show older comments
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
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はその列の最初の要素を選択することに注意してください。
0 Comments
More Answers (0)
See Also
Categories
Find more on ビッグ データの処理 in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!