1

我有一个 M×M×N 矩阵,它是 N M×M 矩阵的串联。我想通过获取每个 M×M 子矩阵的对角线并将它们连接在一起来将此矩阵简化为 M×N 矩阵。我怎样才能以简单的矢量化方式做到这一点?

4

1 回答 1

3

您可以通过获取对角线的线性索引并使用它来形成一个新矩阵来做到这一点

[M,~,N]=size(A);%# A is your matrix
indx=cumsum([1:(M+1):M^2; M^2.*ones(N-1,M)]);%#diagonal indices

B=A(indx');%'# transpose to get MxN

在上面,我习惯于~忽略函数的输出。但是,这仅在您使用 MATLAB R2009b 及更高版本时才有效。如果您的版本早于此,请改用虚拟变量。

于 2011-04-08T18:01:16.053 回答