如果我有阵列如方阵:如何获得第一值的平均值在阵列矩阵中在Matlab
[1,2],[2,3]
[5,1 9],[1,4]
我想要得到的第一值的平均值中的每一行这样的阵列:
1.5
这是可能的Matlab? 我用平均值(矩阵,2)命令来做到这一点与单个值的矩阵,但我不知道如何扩大这个来处理数组。
如果我有阵列如方阵:如何获得第一值的平均值在阵列矩阵中在Matlab
[1,2],[2,3]
[5,1 9],[1,4]
我想要得到的第一值的平均值中的每一行这样的阵列:
1.5
这是可能的Matlab? 我用平均值(矩阵,2)命令来做到这一点与单个值的矩阵,但我不知道如何扩大这个来处理数组。
获取矩阵的所有阵列的第一要素,然后调用mean
功能
mean(matrix(:,:,1))
也许你需要调用之前重塑mean
a = matrix(:,:,1);
mean(a(:))
尽管这个问题更好地回答了这个问题,但这都是猜测。我们对矩阵的实际形状或格式没有深入的了解,所以当OP决定编辑他的问题时,这个答案可能并不正确,尽管我怀疑他永远不会回来。 – rayryeng
你的问题凝视了很久之后时间,它看起来像你的输入是一个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
是您的矩阵中的3D矩阵使用这些值作为片?你的符号很混乱。请使用实际的MATLAB语法来表达您的矩阵。 – rayryeng