【发布时间】:2014-02-02 13:38:12
【问题描述】:
我需要预先计算直方图交叉核矩阵,以便在 MATLAB 中使用 LIBSVM。
假设 x, y 是两个向量。核函数是 K(x, y) = sum(min(x, y))。为了提高效率,大多数情况下的最佳实践是对操作进行矢量化。
我想要做的是计算内核矩阵,比如计算两个矩阵之间的欧几里得距离,比如 pdist2(A, B, 'euclidean')。在定义函数'intKernel'之后,我可以通过调用pdist2(A, B, intKernel)来计算交集核。
我知道函数“pdist2”可能是一个选项。但我不知道如何编写自定义距离函数。虽然,我不知道如何在一个浓缩表达式中编写向量(1×M)和矩阵(M×N)之间的交集核。
'repmat' 可能不可行,因为矩阵真的很大,比如说 20000×360000。
任何帮助将不胜感激。
问候, 沛云
【问题讨论】:
标签: matlab vector vectorization bsxfun