所以这是函数的链接: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个中心,但下一部分代码意味着什么?是新分裂中心坐标的计算?有人可以向我解释语法吗?感谢。
答案 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)编写自己的代码 希望有所帮助。