统计函数
sum(A)求和
如果A是向量,sum(A)计算每个元素之和
如果A是矩阵,sum(A)计算每列元素之和,(即把每列看成一个向量,然会返回一个行向量,结果为每列元素之和)
如果A是多维数组,sum(A,dim)把指定的维度对应位置求和,即dim=1时对列求和,dim=2时对列求和,以次类推
B = sum(..., 'double')和B = sum(..., dim,'double')这个用于指定计算精度,强制使返回类型为双精度
B = sum(..., 'native')和B = sum(..., dim,'native')这个用于指定计算精度,强制使返回类型精度与右边一致
上面如果不指定精度'double'或者'natvie',如果A是整数类型,默认返回双精度,如果A是单精度类型或者双精度类型,默认返回单精度或者双精度
例 1+2+...+100
clear
clc
A=1:100;
sum(A)结果
ans =
5050例
clear
clc
A=magic(3)
sum(A)
sum(sum(A))结果
A =
8 1 6
3 5 7
4 9 2
ans =
15 15 15
ans =
45
例
clear
clc
A=magic(4)
sum(A,1)
sum(A,2)结果
A =
16 2 3 13
5 11 10 8
9 7 6 12
4 14 15 1
ans =
34 34 34 34
ans =
34
34
34
34例 多维向量
clear
clc
A(:,:,1)=[1 0 2 5;4 1 8 7;3 2 6 3];
A(:,:,2)=[3 5 4 1;2 6 2 1;4 2 3 0];
A
sum(A,1)
sum(A,2)
sum(A,3)结果
A(:,:,2) =
3 5 4 1
2 6 2 1
4 2 3 0
ans(:,:,1) =
8 3 16 15
ans(:,:,2) =
9 13 9 2
ans(:,:,1) =
8
20
14
ans(:,:,2) =
13
11
9
ans =
4 5 6 6
6 7 10 8
7 4 9 3例 精度
clear
clc
A=int8(1:20)
B=sum(A) %A是整数类型,不指定精度时,默认返回双精度,结果正确
C=sum(A,'native') %因为A是8位整数类型,精度设置为