矩阵的第一个非单例维度到底是什么?

时间:2018-09-12 10:20:06

标签: matlab matrix octave

查看此definition

  

:总和(x,暗)

     
    

如果省略dim,则默认为第一个     非单维度。

  

我尝试了一些命令:

ON DUPLICATE KEY UPDATE

虽然这些结果在直觉上并不令我感到惊讶,但在我看来,结果#3与accepted answer的“第一个非单维度”的定义背道而驰。

只是为了确保它选择默认的>> sum([2,3,4]) % A matrix of size 1*3 ans = 9 >> sum([2;3;4;]) % A matrix of size 3*1 ans = 9 >> sum([2,3,4;2,3,4;2,3,4;]) % A matrix of size 3*3 ans = 6 9 12 作为dim

1

所以问题是接受的答案是否正确,默认情况下求和是否不应该按行进行(考虑矩阵为3 * 3,并且行维> 1)?

1 个答案:

答案 0 :(得分:1)

Matlab中的矩阵具有维度(1 =行,2 =列,3 =深度,...)。 因此,对于矩阵

>> A = [2, 3, 4;
        2, 3, 4;
        2, 3, 4]

沿维度1的总和将是行元素的总和(向下)。 沿维度2的求和将沿着列(向右)等。

现在,还可以定义一个矩阵,该矩阵不具有行,而仅具有列和深度。然后,由于行维将为零,因此命令sum(A)将沿列求和。

>> A = zeros(0,3,3);
>> A(1,:,:) = [2, 3, 4; 2 3 4; 2 3 4]
>> sum(A)
ans(:,:,1) =
     6
ans(:,:,2) =
     9
ans(:,:,3) =
    12