Computes the traces of the 2D slices in a 3D matrix. function tr = multitrace(A) For a 3-dimensional matrix A of size n-by-n-by-N, returns a column vector tr of length N such that tr(k) = trace(A(:, :, k)); See also: multiprod multitransp multiscale
0001 function tr = multitrace(A) 0002 % Computes the traces of the 2D slices in a 3D matrix. 0003 % 0004 % function tr = multitrace(A) 0005 % 0006 % For a 3-dimensional matrix A of size n-by-n-by-N, returns a column vector 0007 % tr of length N such that tr(k) = trace(A(:, :, k)); 0008 % 0009 % See also: multiprod multitransp multiscale 0010 0011 % This file is part of Manopt: www.manopt.org. 0012 % Original author: Nicolas Boumal, Dec. 30, 2012. 0013 % Contributors: 0014 % Change log: 0015 0016 0017 assert(ndims(A) <= 3, ... 0018 ['multitrace is only well defined for matrix arrays of 3 ' ... 0019 'or fewer dimensions.']); 0020 0021 tr = diagsum(A, 1, 2); 0022 0023 end