Matlab 使用squeeze函数提取多维矩阵的某一维 |
您所在的位置:网站首页 › matlab提取第一行元素 › Matlab 使用squeeze函数提取多维矩阵的某一维 |
在图像处理领域,经常需要对每个像素提取特征,保存为一个三维矩阵。例如对大小为100*150的图像提取SIFT特征,就会得到100*150*128的三维矩阵(A)。如果想要索引任意一个像素(如坐标(2,3)的对应像素)的特征向量,直接对A索引A(2,3:)得到的是一个1*1*128的三维矩阵b,而不是一个向量,解决方法是使用squeeze函数。c=squeeze(b)得到的c就是128的列向量。例子如下: 1、随机生成一个三维矩阵a: >> a=rand(2,3,4) a(:,:,1) = 0.7655 0.1869 0.4456 0.7952 0.4898 0.6463 a(:,:,2) = 0.7094 0.2760 0.6551 0.7547 0.6797 0.1626 a(:,:,3) = 0.1190 0.9597 0.5853 0.4984 0.3404 0.2238 a(:,:,4) = 0.7513 0.5060 0.8909 0.2551 0.6991 0.9593
2、直接索引坐标(1,1)会得到 >> b=a(1,1,:) b(:,:,1) = 0.7655 b(:,:,2) = 0.7094 b(:,:,3) = 0.1190 b(:,:,4) = 0.7513
3、使用squeeze函数:
可以从每个变量的size上看出:
|
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |