我有一个函数,其中我输入任意阶d
的张量T
,其大小为n1 x n2 x ... x nd
。我想要输出张量T(1:r,1:r,...,1:r)
。换句话说,r x r x ... x r
子张量的d
个数为r
’s。我在处理变量1:r
时遇到困难。理想情况下,如果可能的话,我希望在不重塑T
的情况下完成此操作。
这对于单元阵列来说非常简单,请考虑以下示例:
% example setup
a = ones(3,3,3,3);
r = 2;
% create indices in cell array
b = cell(1,ndims(a));
b(:) = {1:r};
% evaluate
c = a(b{:});
disp(size(c))