MATLAB K近邻算法 — knnsearch() 函数

K近邻算法是找到K个最近的邻居。

 IDX = knnsearch(X,Y) finds the nearest neighbor in X for each point in
    Y. X is an MX-by-N matrix and Y is an MY-by-N matrix. Rows of X and Y
    correspond to observations and columns correspond to variables. IDX is
    a column vector with MY rows. Each row in IDX contains the index of
    the nearest neighbor in X for the corresponding row in Y.

IDX = knnsearch(X, Y) 在向量集合X中找到分别与向量集合Y中每个行向量最近的邻居。X大小为MX-by-N矩阵,Y为大小MY-by-N的矩阵,X和Y的行对应观测的样本

列对应每个样本的变量。IDX是一个MY维的列向量,IDX的每一行对应着Y每一个观测在X中最近邻的索引值。
 
    [IDX, D] = knnsearch(X,Y) returns a MY-by-1 vector D containing the
    distances between each row of Y and its closest point in X.
 
    [IDX, D]= knnsearch(X,Y,'NAME1',VALUE1,...,'NAMEN',VALUEN) specifies
    optional argument name/value pairs:
 
      Name          Value
      'K'           A positive integer, K, specifying the number of nearest
                    neighbors in X to find for each point in Y. Default is
                    1. IDX and D are MY-by-K matrices. D sorts the
                    distances in each row in ascending order. Each row in
                    IDX contains the indices of K closest neighbors in X
                    corresponding to the K smallest distances in D.

“K”表示最近邻个数,返回值D是按行升序排列。
 
      'NSMethod'    Nearest neighbors search method. Value is either:

搜寻的方法参数

     'Distance'     A string or a function handle specifying the distance

选择何种距离作为最近邻的度量标准
   
  
    Example:
       % Find 2 nearest neighbors in X and the corresponding values to each
       % point in Y using the distance metric 'cityblock'
       X = randn(100,5);
       Y = randn(25, 5);
       [idx, dist] = knnsearch(X,Y,'dist','cityblock','k',2);
 

MATLAB中的knnsearch函数是用于最邻近搜索的函数。它可以在给定一个点集S和一个目标点q的情况下,找到距离q最近的点。该函数的语法如下: \[idx,d\] = knnsearch(X,Y,'k',value) 其中,X是被搜索的点集,Y是要查找的点或者点集。如果Y是由n个点构成的点集,那么Y可以表示为一个n×3的矩阵。如果要查找一个点,可以具体到每个点,例如Y(1,:)表示查找第一个点。如果要查找多个点,可以将n'×3的矩阵送入函数,例如查找第一到第三个点可以使用Y(1:3,:)。value表示想要查找的最近邻点的个数。 函数的返回值是两个矩阵,idx表示距离目标点最近的点在X中的索引,d表示目标点与最近邻点之间的距离。可以使用disp函数来显示这两个矩阵的值。 例如,如果有一个点集X和一个点集Y,可以使用以下代码调用knnsearch函数: ```matlab X = \[1 2; 3 1; 5 8; 4 10; 7 4\]; Y = \[5 7; 8 5\]; \[idx,d\] = knnsearch(X,Y,'k',3); disp(idx); disp(d); ``` 这段代码将会找到Y中每个点距离X中最近的3个点,并将结果分别存储在idx和d中。 #### 引用[.reference_title] - *1* [MATLAB knnsearch详解](https://blog.csdn.net/JAT0929/article/details/104206260)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [matlab——knnsearch用法介绍](https://blog.csdn.net/qq_42537872/article/details/126141946)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [【MATLAB】K近邻算法——knnsearch函数及其用法](https://blog.csdn.net/xing09268/article/details/127439706)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值