Jac*_*ses 7 matlab matrix k-means
我有一个大小的矩阵64500x17.它代表检测到的texton功能,我必须用它来找到5个质心kmeans.
我需要的是:
12900x17矩阵5x17矩阵,以输入到的start参数kmeans.我知道该怎么做几乎所有的东西(cat,kmeans,等),但我只是想找到一个矩阵分成5个部分,或加/划分成所需大小的方法.
除非绝对必要,否则我禁止过度使用循环(由于效率).
我在其他问题中找不到任何相关的例子,所以如果这个问题得到了回答,请耐心等待.
你可以使用mat2cell和oneliner
C = mat2cell(A, repmat(12900, 5, 1), 17);
Run Code Online (Sandbox Code Playgroud)
第二个参数mat2cell是矩阵的行拆分.
现在C是一个单元格数组:
C =
[12900x17 double]
[12900x17 double]
[12900x17 double]
[12900x17 double]
[12900x17 double]
Run Code Online (Sandbox Code Playgroud)
并且可以访问部分矩阵
C{1} etc.
Run Code Online (Sandbox Code Playgroud)
要获取第一个子矩阵,请使用冒号表示法:
A(1:12900,:)
Run Code Online (Sandbox Code Playgroud)
然后
A(12901:12900*2,:)
Run Code Online (Sandbox Code Playgroud)
等等。