mat_vec=zeros(100,10000);
點積是dot(xi, xj)
distanceFunction = @(xi, xj)dot(xi, xj)
mat_dist=pdist(mat_vec, distanceFunction)
錯誤資訊如
distanceFunction =
function_handle with value:
@(xi,xj)dot(xi,xj)
Error using pdist
Error evaluating distance function '@(xi,xj)dot(xi,xj)'.
Error in Task1_lab404_02 (line 45)
mat_dist=pdist(mat_vec, distanceFunction)
Caused by:
Error using dot
A and B must be same size.
uj5u.com熱心網友回復:
從pdist檔案(強調我的):
距離函式具有以下形式
function D2 = distfun(ZI,ZJ)在哪里
ZI是包含單個觀察值的1逐向量向量。n
ZJ是包含多個觀測值的m2逐矩陣。該函式必須接受具有任意數量觀察值的矩陣。nZJ
如果您在第二個輸入上撰寫矢量化函式,就可以實作這一點。對于點積,這很容易,使用任一矩陣乘法:
distanceFunction = @(xi, xj) xj*xi';
或隱式擴展:
distanceFunction = @(xi, xj) sum(conj(xi).*xj, 2);
但是請注意,這不是真正的距離函式,因為對于復數輸入distanceFunction(a, b)與 不同distanceFunction(b, a)。應用pdist只會給出每對結果中的一個。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/534017.html
標籤:软件
上一篇:無法將陣列添加到Matlab字典
