Как суммировать 4D матрицы в MATLAB по одной координате?

#matlab

#matlab

Вопрос:

Я не знаю, что со мной случилось, но я не могу найти способ сделать это. Хотя это кажется простым.

У меня есть 4D матрица A=rand(4, 3, 3, 3) , и я хотел бы суммировать эти матрицы по 3-м координатам.

 A = rand(4, 3, 3, 3);

S1 = A(:,:,1,1) A(:,:,1,2) A(:,:,1,3);

S2 = A(:,:,2,1) A(:,:,2,2) A(:,:,2,3);

S3 = A(:,:,3,1) A(:,:,3,2) A(:,:,3,3);
  

Как это сделать в целом?

Комментарии:

1. Разве это не просто sum(A,3) ?

2. Да, это так. Я знал, что это что-то простое. Спасибо.

3. @LuisMendo, я предпочитаю, когда ответы на вопросы также отображаются на главной странице, даже если ответ очень прост, поэтому я опубликовал ваш комментарий ( некоторая дополнительная информация) в качестве ответа. Я делаю это не для репутации, поэтому я сделал это Вики сообщества. Пожалуйста, дайте мне знать, если вы хотите сделать свой комментарий ответом, и я, конечно, удалю свой ответ =)

4. @RoberP Хорошая идея. Мне также нравится, когда решаемые вопросы отображаются как закрытые на главной странице. Для меня это нормально. Спасибо за заботу 🙂

Ответ №1:

Чтобы суммировать по n-му измерению, вы можете использовать второй аргумент sum следующим образом:

 s = sum(A,n);
  

таким образом, в вашем случае, чтобы суммировать по третьему измерению:

 s = sum(A,3);