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) =
matlab
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
numel
函数功能:该函数用于计算数组中满足指定条件的元素个数
语法格式:n=numel(A)
返回数组A中元素的个数。
n=numel(A,index1,index2,...,indexn)