У меня есть 3D-матрица в Matlab размером NxMxD, и мне нужно сложить по определенному измерению:
x = rand(5,3,2);
sum1 = sum(x,1);
sum2 = sum(x,2);
sum3 = sum(x,3);
Я бы, очевидно, ожидал в случае 3, что результатом будет либо 2D-матрица, либо 3D-матрица с 1-м измерением длины 1. К сожалению, это не так.
sum1 и sum2 - это трехмерная матрица, размерность которой равна сумме длины 1, а sum3 - это двумерная матрица.
Я хотел бы иметь возможность получить sum1 и sum2 в качестве 2D-матрицы аналогичным образом, как вычисляется sum3. Можно ли это сделать, используя только сумму, или единственный способ - это использовать, например, функцию squeeze ())