#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);