squeeze的作用是移除单一维。
如果矩阵哪一个维数是1,B=squeeze(A)就将这个维数移除。
考虑2-by-1-by-3 数组Y = rand(2,1,3). 这个数组有单一维 —就是每页仅仅一列:
B=squeeze(A)
返回和矩阵A相同元素但所有单一维都移除的矩阵B,单一维是满足size(A,dim)=1的维。
squeeze命令对二维数组是不起作用的;
如果A是一行或列向量或一标量(1*1)值,则B=A。
matlab
示例:
Y
=
Y(:,:,1) = Y(:,:,2)
=
0.5194 0.0346
0.8310
0.0535
Y(:,:,3) =
0.5297 matlab
0.6711
命令Z = squeeze(Y)结果是2-by-3矩阵:
Z =
0.5194
0.0346 0.5297
0.8310 0.0535
0.6711
考虑1-by-1-by-5数组mat=repmat(1,[1,1,5]).
这个数组每页仅仅一标量值:
mat
=
mat(:,:,1) =
1
mat(:,:,2)
=
1
mat(:,:,3)
=
1
mat(:,:,4)
=
1
mat(:,:,5)
=
1
命令squeeze(mat)结果为5-by-1矩阵:
squeeze(mat)
ans
=
1
1
1
1
1
size(squeeze(mat))
ans
=
5 1
[转]matlab中squeeze函数的用法,numel的用法
原文:http://www.cnblogs.com/rong86/p/3551420.html