matlab中任意阶张量的子张量



我有一个函数,其中我输入任意阶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))

相关内容

  • 没有找到相关文章