2017-09-28 320 views
0

如果我有阵列如方阵:如何获得第一值的平均值在阵列矩阵中在Matlab

[1,2],[2,3]

[5,1 9],[1,4]

我想要得到的第一值的平均值中的每一行这样的阵列:

1.5

这是可能的Matlab? 我用平均值(矩阵,2)命令来做到这一点与单个值的矩阵,但我不知道如何扩大这个来处理数组。

+5

是您的矩阵中的3D矩阵使用这些值作为片?你的符号很混乱。请使用实际的MATLAB语法来表达您的矩阵。 – rayryeng

回答

0

您可以在平均函数内应用平均函数来获取索引1处二维数组的总平均值。您可以在索引2处使用数组进行类似操作。请考虑以下快照。

+5

有实际的文字而不是快照更有用。 – rayryeng

+2

这不是他想要的结果 – Adiel

1

获取矩阵的所有阵列的第一要素,然后调用mean功能

mean(matrix(:,:,1)) 

也许你需要调用之前重塑mean

a = matrix(:,:,1); 
mean(a(:)) 
+0

尽管这个问题更好地回答了这个问题,但这都是猜测。我们对矩阵的实际形状或格式没有深入的了解,所以当OP决定编辑他的问题时,这个答案可能并不正确,尽管我怀疑他永远不会回来。 – rayryeng

0

你的问题凝视了很久之后时间,它看起来像你的输入是一个3D矩阵,其中你的格式的每一行对应于一个2D矩阵切片。因此,在适当的MATLAB语法,你的矩阵居然是:

M = cat(3, [1,2; 2,3], [5,9; 1,4]); 

因此,我们得到:

>> M = cat(3, [1,2; 2,3], [5,9; 1,4]) 

M(:,:,1) = 

    1  2 
    2  3 


M(:,:,2) = 

    5  9 
    1  4 

的第一片是矩阵[1,2; 2,3]和第二层是[5,9; 1,4]。从它看起来,您只需要每个切片的第一列的平均值,并将其作为值的单个向量返回。因此,请将mean函数和索引用于所有行和切片的第一列。这将不幸成为一个单身3D阵列,所以你需要挤出单身人士的维度。

事不宜迟:

O = squeeze(mean(M(:,1,:))) 

因此,我们得到:

>> O = squeeze(mean(M(:,1,:))) 

O = 

    1.5000 
    3.0000