Takuya Miyashita
This site
Web
Start:
*特定の値に最も近い値(点)の抽出 [#p5d5944f]
#contents
~
値の近さと距離の近さについて考える.~
まあ,近い値というのも1次元の数直線を想定したら距離とみな...
~
ちなみに,下記で使われている関数 knnsearch を使うには,~
[[Statistics and Machine Learning Toolbox>https://jp.math...
~
**1次元ベクトルから最も近い値の抽出 [#c85abfed]
ベクトルX (ny 行1列)の中から,ある値 P に最も近い値を探す.
#codeprettify(lang-matlab){{
IDX = knnsearch(X,P);
}}
このとき,Xは縦のベクトルでないとエラーを返すので注意.Nx...
IDX はインデックスで,X(IDX) が最も P に近い値となる.~
~
**2次元空間の格子点から,指定点と最も距離が近い点(最近傍...
基本形は下記の通り.xq,yq (それぞれ Nx1 配列)または P (Nx...
入力引数は2つであることに注意.
#codeprettify(lang-matlab){{
[IDX,D] = knnsearch([X,Y], [xq yq]); % 方法1
}}
#codeprettify(lang-matlab){{
[IDX,D] = knnsearch([X,Y], P); % 方法2 P = [x y]
}}
matlab 関数 [[meshgrid>https://jp.mathworks.com/help/matl...
#codeprettify(lang-matlab){{
[IDX,D] = knnsearch([X(:), Y(:)],[xq, yq]);
%[IDX,D] = knnsearch([reshape(X, [ny*nx, 1]), reshape(Y,[...
}}
D は最近傍点と (xq,yq) との距離.~
IDX は最近傍点の線形インデックス.ind2sub で線形インデッ...
#codeprettify(lang-matlab){{
% (X,Y) の中で (xq,yq) に最も近い点の抽出
XX = X(IDX);
YY = Y(IDX);
% 線形インデックスから最近傍となる配列の要素を抽出
[row,col] = ind2sub(size(X),IDX);
}}
~
**2次元 または 3次元 の点群(格子でも可)中の最近傍点の抽...
knnsearch なんか使わなくても [[dsearchn>https://jp.mathwo...
使い方は knnsearch と変わらず.~
#codeprettify(lang-matlab){{
[IDX,D] = dsearchn([X(:), Y(:)],[xq, yq]);
}}
~
~
**もっと単純な方法 [#b684522b]
そもそも,メッシュ状の候補点から最も近い点を出すには特別...
#codeprettify(lang-matlab){{
ind = zeros(length(xq),1);
for k = 1:length(xq)
[~,ind(k)] = min(abs(X(:)-xq(k)));
end
}}
2次元の場合でも,x, y 軸が等間隔で直交である限りは,それ...
~
~
***参考 MathWorks公式 [#j8821ad3]
-[[dsearchn>https://jp.mathworks.com/help/matlab/ref/dsea...
-[[knnsearch>https://jp.mathworks.com/help/stats/knnsearc...
End:
*特定の値に最も近い値(点)の抽出 [#p5d5944f]
#contents
~
値の近さと距離の近さについて考える.~
まあ,近い値というのも1次元の数直線を想定したら距離とみな...
~
ちなみに,下記で使われている関数 knnsearch を使うには,~
[[Statistics and Machine Learning Toolbox>https://jp.math...
~
**1次元ベクトルから最も近い値の抽出 [#c85abfed]
ベクトルX (ny 行1列)の中から,ある値 P に最も近い値を探す.
#codeprettify(lang-matlab){{
IDX = knnsearch(X,P);
}}
このとき,Xは縦のベクトルでないとエラーを返すので注意.Nx...
IDX はインデックスで,X(IDX) が最も P に近い値となる.~
~
**2次元空間の格子点から,指定点と最も距離が近い点(最近傍...
基本形は下記の通り.xq,yq (それぞれ Nx1 配列)または P (Nx...
入力引数は2つであることに注意.
#codeprettify(lang-matlab){{
[IDX,D] = knnsearch([X,Y], [xq yq]); % 方法1
}}
#codeprettify(lang-matlab){{
[IDX,D] = knnsearch([X,Y], P); % 方法2 P = [x y]
}}
matlab 関数 [[meshgrid>https://jp.mathworks.com/help/matl...
#codeprettify(lang-matlab){{
[IDX,D] = knnsearch([X(:), Y(:)],[xq, yq]);
%[IDX,D] = knnsearch([reshape(X, [ny*nx, 1]), reshape(Y,[...
}}
D は最近傍点と (xq,yq) との距離.~
IDX は最近傍点の線形インデックス.ind2sub で線形インデッ...
#codeprettify(lang-matlab){{
% (X,Y) の中で (xq,yq) に最も近い点の抽出
XX = X(IDX);
YY = Y(IDX);
% 線形インデックスから最近傍となる配列の要素を抽出
[row,col] = ind2sub(size(X),IDX);
}}
~
**2次元 または 3次元 の点群(格子でも可)中の最近傍点の抽...
knnsearch なんか使わなくても [[dsearchn>https://jp.mathwo...
使い方は knnsearch と変わらず.~
#codeprettify(lang-matlab){{
[IDX,D] = dsearchn([X(:), Y(:)],[xq, yq]);
}}
~
~
**もっと単純な方法 [#b684522b]
そもそも,メッシュ状の候補点から最も近い点を出すには特別...
#codeprettify(lang-matlab){{
ind = zeros(length(xq),1);
for k = 1:length(xq)
[~,ind(k)] = min(abs(X(:)-xq(k)));
end
}}
2次元の場合でも,x, y 軸が等間隔で直交である限りは,それ...
~
~
***参考 MathWorks公式 [#j8821ad3]
-[[dsearchn>https://jp.mathworks.com/help/matlab/ref/dsea...
-[[knnsearch>https://jp.mathworks.com/help/stats/knnsearc...
Page:
Edit with a page name which already exists