matlab - 在matlab中不使用for循环对4D矩阵求和

标签 matlab for-loop sum

我有一个大小为 m × n × p × q 的 4D 矩阵 A。考虑 B = A(:,:,1,1),它是一个 m × n 矩阵。我想将 B 的所有元素相加得出一个数字。我想对所有 A 的所有此类 B 矩阵执行此操作,所以最后我将得到一个 p by q矩阵。

如何在没有 for 循环的情况下做到这一点?

作为 3D 矩阵的示例(例如 A 是一个 3D 矩阵),我认为这是可行的,

sum(squeeze(sum(A,1)),1)

但我不知道如何对 4D 矩阵执行此操作...

最佳答案

出了什么问题

[m n p q] = size( A );
squeeze( sum( reshape( A, [], p, q ), 1 ) )

或者,

squeeze( sum( sum( A, 2 ), 1 ) )

关于matlab - 在matlab中不使用for循环对4D矩阵求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24508751/

相关文章:

performance - 带/不带循环的 Matlab 性能

java - 如何为 Android Studio 循环创建按钮删除 View

c++ - 如何使用vector <vector <int >>找到严格位于矩阵次对角线上的元素之和?

arrays - 零一矩阵中零范围的索引

matlab - 为自定义 Mupad 程序定义一般相对搜索路径

javascript - 等待 Node.js Express 应用程序在 for 循环中调用 http.request

c++ - 我得到一个 "string subscript out of range error"。我不明白为什么

c# - LINQ:如何通过对每个元素执行计算来转换列表

mysql - MySQL查询来计算销售/总计

python - 使用 python 读取大型文本文件比使用 Matlab 读取相同文本的相同代码慢得多,知道为什么吗?