在 Matlab 中压缩一些单例维度

use*_*004 5 arrays matlab matrix multidimensional-array

如何在Matlab中仅压缩矩阵的单维度子集?挤压功能将它们全部删除。

我将这些维度的索引保存在一个名为“dims”的向量中。

Div*_*kar 4

代码

%// Input matrix is assumed as A
sz = size(A)
t2 = sz~=1
t2(dims)=1
out = reshape(A,sz(t2)) %// out is the desired output
Run Code Online (Sandbox Code Playgroud)

如果你对密集代码着迷,你可以尝试这个 -

sz = size(A)
out = reshape(A,sz(sort([dims find(sz~=1)])))
Run Code Online (Sandbox Code Playgroud)