Matlab中的LBG函数 - 需要代码说明

时间:2015-01-22 20:27:56

标签: matlab

所以这是函数的链接:http://www.ee.ic.ac.uk/hp/staff/dmb/voicebox/doc/voicebox/kmeanlbg.html

我对Matlab完全不熟悉,这行代码让我感到困惑:

[x,esq,j]=v_kmeans(d,m,[x(1:n,:)+e(ones(n,1),:); x(1:n,:)-e(ones(n,1),:); x(n+1:m-n,:)]);

我猜它会调用kmeans函数,传递d数据和m个中心,但下一部分代码意味着什么?是新分裂中心坐标的计算?有人可以向我解释语法吗?感谢。

2 个答案:

答案 0 :(得分:0)

据我了解,下一部分是v_kmeans函数的初始质心。 它实际上是一个矩阵,列数与m相同。

请查看此功能的原始文档。 http://www.ee.ic.ac.uk/hp/staff/dmb/voicebox/doc/voicebox/v_kmeans.html

答案 1 :(得分:0)

以外行人的话来说,在那行代码之前,他们只做了一次kmeans,然后运行一个循环来反复做kmeans以获得最佳的集群中心。

他们为矢量量化做了kmeans,因为他们希望通过使用lbg(kmeans)算法来训练(生成)码本。

然后他们将自己的逻辑应用到它,所以由你决定: -

a)搞清楚

b)编写自己的代码 希望有所帮助。