arrays - 如何在Matlab中从多维数组中获得积分?

标签 arrays matlab multidimensional-array integration octave

假设我们有

A(:,:,1) =

 1     1     1
 1     1     1
 1     1     1


A(:,:,2) =

 2     2     2
 2     2     2
 2     2     2


A(:,:,3) =

 2     2     2
 3     3     3
 2     2     2

如何对沿“页面”(即“z”)轴的每个元素执行积分?

我们的结果矩阵 M 应为 3 x 3,例如:

M(1:1) 将包含 A(1,1,1)、A(1,1,2)A 的积分(1,1,3).

M(1:2) 将包含 A(1,2,1)、A(1,2,2)A 的积分(1,2,3).

等等。

我想得到矩阵M,如下所示:

M = 
3.5    3.5    3.5
4      4      4 
3.5    3.5    3.5

知道如何做到这一点吗?我尝试过使用 trapz 但没有骰子。

最佳答案

只需使用 trapz 中的 DIM 参数(这适用于 Octave):

A = bsxfun ("times", ones (3, 3), permute([1 2 2], [1, 3, 2]));
A(2, :, 3) = 3;
M = trapz (A, 3)
M =

   3.5000   3.5000   3.5000
   4.0000   4.0000   4.0000
   3.5000   3.5000   3.5000

关于arrays - 如何在Matlab中从多维数组中获得积分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29461836/

相关文章:

Matlab:Moore-Penrose伪逆算法实现

javascript - Node JS 数组、Foreach、Mongoose、同步

python - 如何从 python 转换为 matlab - a*dx.min( )/abs(v) -

java - 从 ArrayList 输出中删除 [] 并存储在 HashMap<String,Object> 中

matlab - 为什么 OpenCV RGB 到 YCbCr 转换的结果与使用 ycbcr2rgb 函数在 matlab 中转换的结果不同?

javascript - 使用 FOR 循环将值存储在变量中,例如多维数组值

c# - 在 C# 中创建子数组引用(使用不安全?)

arrays - postgres,多维数组的包含运算符在比较之前执行展平?

c - 从输入文件中读取字符串并将它们存储到动态数组中

javascript - aurelia View 中的过滤器数组