question regarding sum(m,3) command

3 ビュー (過去 30 日間)
fima v
fima v 2022 年 12 月 12 日
編集済み: Jan 2022 年 12 月 13 日
hello, i have a three dimentional matrices m.
output of sum(m,3) return a two dimentional matrices.
What kind of summing being done on my 3D matrices which creates the 2D matrices?
Thanks.

採用された回答

Torsten
Torsten 2022 年 12 月 12 日
編集済み: Torsten 2022 年 12 月 12 日
It is summed over the third dimension of the matrix.
A = zeros(2,2,2);
A(:,:,1) = [1 2;3 4];
A(:,:,2) = [5 6;7 8];
sum(A,3)
ans = 2×2
6 8 10 12
A(:,:,1) + A(:,:,2)
ans = 2×2
6 8 10 12

その他の回答 (1 件)

Jan
Jan 2022 年 12 月 13 日
編集済み: Jan 2022 年 12 月 13 日
Actually a sum over a 3D array along the 3rd dimension replies a [M x N x 1] array, as summing over the 2nd dimension creates a [M x 1 X P] array. But Matlab ignores trailing singelton dimensions, except it is the 2nd dimension of a matrix (known as "column vector").
You can even access these virtual dimensions:
X = [1, 2; 3, 4]
X = 2×2
1 2 3 4
X(1, 2, 1)
ans = 2
X(2, 2, 1, 1, 1, 1, 1)
ans = 4
There have been some inconsistencies in R2009a, which let trailing singelton dimensions exist for some functions implemented a C-mex. This did not cause bugs, but the ndims command counted this virtual dimensions also. In modern Matlab version, this feature is supported consequently as far as I know.

カテゴリ

Help Center および File ExchangeCreating and Concatenating Matrices についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by