2015-01-22 2 views
0

Так что это ссылка на функцию: http://www.ee.ic.ac.uk/hp/staff/dmb/voicebox/doc/voicebox/kmeanlbg.htmlфункция LBG в Matlab - нужно код объяснение

Я совершенно не знаком с 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

Насколько я понимаю, следующая часть - это начальные центроиды для функции v_kmeans. Это акутально матрица с тем же числом столбцов, что и m.

Пожалуйста, взгляните на оригинальный документ для этой функции. http://www.ee.ic.ac.uk/hp/staff/dmb/voicebox/doc/voicebox/v_kmeans.html

0

В терминах дилетантов, предшествующих этой строке кода, они выполняли kmeans один раз, а затем выполняли цикл, чтобы делать kmeans снова и снова, чтобы получить оптимальные кластерные центры.

Они выполняют kmeans для векторного квантования, потому что они хотят обучать (генерировать) кодовую книгу с помощью алгоритма lbg (kmeans).

Они затем применять их собственную логику к нему, так что его до вас: - либо

а) фигура его

б) написать свой собственный код Надежда, что помогает.

Смежные вопросы