配列の中から目的値に最も近い値を取り出すには?
35 ビュー (過去 30 日間)
古いコメントを表示
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
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 件のコメント
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で ビッグ データの処理 についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!