关于matlab中的kmeans和reshape函数
来源:互联网 发布:淘宝卖家电话隐藏 编辑:程序博客网 时间:2024/06/02 04:44
matlab中自带k均值聚类函数kmeans,但使用不当可能导致一些问题,下面总结一下使用这两个函数的时候需要注意的事情。
比如说先随便造一个矩阵sample如下图:
然后对其施行kmeans聚类算法,Idx=kmeans(sample,2)该命令将聚类标号存储在Idx中,当然有时候这句话会报错如下图:
这并没有关系,看提示就知道是在迭代中没能形成簇,这时候重新多运行几次应该就可以了,这时候你看一看Idx到底存的是什么呢?
可以发现Idx是存了5行的标号,也就是说,kmeans对矩阵进行聚类的时候是按照行为单位进行聚类的,一个行向量是一个“点”,所以在图像分割中如果你直接想用reshape来显示不同类对应的图像,如以下命令就会报错了:
原因就在于原始图像是m*n的公有m*n个元素,而reshape函数要求重新塑形之后的矩阵元素要和塑形之前一样多,而你的Idx里是以行为单位的对应的只有m个元素,因此才导致上面红色的错误,为了避免这个问题,你可以在使用kmeans之前先把原矩阵reshape成一个列向量,即
这时候colsample实际上就是一个列向量了,这时候再施行kmeans算法如下图:
再看看newIdx里是什么东东?如下图:
可以发现是所有元素对应的类标号了,所以这时候如果你想看看不同类对应的图像是什么样子就可以使用reshape命令再imshow一下了,如下图:
此时就一切正常没有任何问题了
0 0
- 关于matlab中的kmeans和reshape函数
- python中的reshape()和matlab中的reshape()区别
- Matlab之repmat和reshape函数
- MATLAB reshape()函数
- matlab reshape 函数
- matlab reshape函数
- Matlab reshape 函数
- Matlab 的reshape函数
- Matlab 的reshape函数
- matlab之reshape函数
- matlab的reshape函数
- matlab中reshape 函数
- matlab reshape 函数
- MATLAB的reshape函数
- Matlab 的reshape函数
- MATLAB reshape函数
- Matlab 的reshape函数
- MATLAB的reshape函数
- 工作笔记
- 循环链表
- PHP中的Traits详解
- Cocos2d-x利用xxtea进行图片资源加密
- java 输入的三种方法
- 关于matlab中的kmeans和reshape函数
- Appium webdriver的capabilities配置
- virtualbox解决安装ubuntu后分辨率小的问题
- 云计算——1、云计算介绍
- 刚入职服务器就被攻击,如何治愈与防范【吐血经历】
- Timeout
- 卷积神经网络反向传播算法
- kafka安装(一)
- RNN学习(三)