1、加法
说明
plus,+ 添加数字,追加字符串
语法
C = A + B 通过对应元素相加将数组 A 和 B 相加
C = plus(A,B) 是执行 A + B 的替代方法
S = sum(___,nanflag) 指定包含还是省略 A 中的 NaN 值。
1)将标量与数组相加
代码及运算
Matlab
A = [0 1; 1 0];
C = A + 2
C =
2 3
3 2
2)追加字符串
说明:创建两个 1×3 字符串数组,然后追加两个数组中位于类似位置的字符串。
代码及运算
Matlab
s1 = ["Red" "Blue" "Green"]
s2 = ["Truck" "Sky" "Tree"]
s = s1 + s2
s1 =
1×3 string 数组
"Red" "Blue" "Green"
s2 =
1×3 string 数组
"Truck" "Sky" "Tree"
s =
1×3 string 数组
"RedTruck" "BlueSky" "GreenTree"
3)将两个数组相加
代码及运算
Matlab
A = [1 0; 2 4];
B = [5 9; 2 1];
C = A + B
C =
6 9
4 5
2、sum数组元素总和
语法
语法1:S = sum(A,"all") 返回 A 的所有元素的总和。
语法2:S = sum(A,dim) 沿维度 dim 返回总和。
1)向量元素的总和
代码及运算
Matlab
A = 1:10;
S = sum(A)
S =
55
2)矩阵列总和
代码及运算
Matlab
A = [1 3 2; 4 2 5; 6 1 4]
S = sum(A)
A =
1 3 2
4 2 5
6 1 4
S =
11 6 11
3) 矩阵行总和
代码及运算
Matlab
A = [1 3 2; 4 2 5; 6 1 4]
S = sum(A,2)
A =
1 3 2
4 2 5
6 1 4
S =
6
11
11
4) 数组切片总和
两个页均为 4×3 的全 1 矩阵
代码及运算
Matlab
A = ones(4,3,2);
S1 = sum(A,[1 2])
S1(:,:,1) =
12
S1(:,:,2) =
12
4 个页的元素求和,每个页为 3×2 矩阵。
代码及运算
Matlab
A = ones(4,3,2);
S2 = sum(A,[2 3])
S2 =
6
6
6
6
3个页面每个页的总和是一个 4×2 矩阵的元素之和。
代码及运算
Matlab
A = ones(4,3,2);
S3 = sum(A,[1 3])
S3 =
8 8 8
计算一个数组的所有维度上的和
代码及运算
Matlab
A = ones(4,3,2);
S4 = sum(A,[1 2 3])
Sall = sum(A,"all")
S4 =
24
Sall =
24
单维度求和
代码及运算
Matlab
A = ones(4,3,2);
S5 = sum(A,1)
A = ones(4,3,2);
S5 = sum(A,2)
A = ones(4,3,2);
S6 = sum(A,3)
S5(:,:,1) =
4 4 4
S5(:,:,2) =
4 4 4
S5(:,:,1) =
3
3
3
3
S5(:,:,2) =
3
3
3
3
S6 =
2 2 2
2 2 2
2 2 2
2 2 2
排除缺失值的总和
代码及运算
Matlab
A = [1.77 -0.005 NaN -2.95; NaN 0.34 NaN 0.19]
S = sum(A,"omitnan")
A =
1.7700 -0.0050 NaN -2.9500
NaN 0.3400 NaN 0.1900
S =
1.7700 0.3350 0 -2.7600
3、 cumsum累积和
语法
语法1:B = cumsum(A,dim) 返回沿维度 dim 的元素的累积和。
语法2:B = cumsum(___,nanflag) 指定包含还是省略 A 中的 NaN 值。
1)向量的累积和
说明:计算从 1 到 5 的整数的累积和。元素 B(2) 是 A(1) 和 A(2) 的和,而 B(5) 是元素 A(1) 至 A(5) 的和。
代码及运算
Matlab
A = 1:5;
B = cumsum(A)
B =
1 3 6 10 15
2)矩阵行中的累积和
计算 A 的行的累积和。元素 B(3) 是 A(1) 和 A(3) 的和,而 B(5) 是 A(1)、A(3) 和 A(5) 的和。
代码及运算
Matlab
A = [1 3 5; 2 4 6]
B = cumsum(A,2)
A =
1 3 5
2 4 6
B =
1 4 9
2 6 12
3) 逻辑输入的累积和
代码及运算
Matlab
A = [true false true; true true false]
B = cumsum(A,2)
A =
2×3 logical 数组
1 0 1
1 1 0
B =
1 1 2
1 2 2
4) 不包括缺失值的累积和
对于包含前导 NaN 值的矩阵列,累积和为 0,直到遇到非 NaN 值。
代码及运算
Matlab
A = [3 5 NaN 4; 2 6 NaN 9; 1 3 5 NaN]
B = cumsum(A,"omitnan")
A =
3 5 NaN 4
2 6 NaN 9
1 3 5 NaN
B =
3 5 0 4
5 11 0 13
6 14 5 13
4、movsum移动总和
语法
M = movsum(A,k) 返回由局部 k 个数据点总和组成的数组,其中每个总和基于 A的相邻元素的长度为 k 的滑动窗计算得出。
1)向量的中心移动和:计算行向量的三点中心移动和
代码及运算
Matlab
A = [4 8 6 -1 -2 -3 -1 3 4 5];
M = movsum(A,3)
M =
12 18 13 3 -6 -6 -1 6 12 9
2)向量的尾部移动和:计算行向量的三点尾部移动和。
代码及运算
Matlab
A = [4 8 6 -1 -2 -3 -1 3 4 5];
M = movsum(A,[2 0])
M =
4 12 18 13 3 -6 -6 -1 6 12
3)矩阵的移动和:计算矩阵中每行的三点中心移动和。
代码及运算
Matlab
A = [4 8 6; -1 -2 -3; -1 3 4]
M = movsum(A,2,2)
A =
4 8 6
-1 -2 -3
-1 3 4
M =
4 12 14
-1 -3 -5
-1 2 7
4) 排除缺失值的移动和
代码及运算
Matlab
A = [4 8 NaN -1 -2 -3 NaN 3 4 5];
M = movsum(A,3,"omitnan")
M =
12 12 7 -3 -6 -5 0 7 12 9
5、减法:minus, -
语法
C = A - B 从 A 数组中减去 B 数组,方法是将对应元素相减。
C = minus(A,B) 是执行 A - B 的替代方法
1)从数组减去标量
代码及运算
Matlab
A = [2 1; 3 5];
C = A - 2
C =
0 -1
1 3
2)两个数组相减
代码及运算
Matlab
A = [1 0; 2 4];
B = [5 9; 2 1];
C = A - B
C =
-4 -9
0 3
5、 差分:diff
语法
Y = diff(X,n) 通过递归应用 diff(X) 运算符 n 次来计算第 n 个差分。
Y = diff(X,n,dim) 是沿 dim 指定的维计算的第 n 个差分。
参数
n:差分阶数 dim:运算维度
1)向量元素之间的差分
代码及运算
Matlab
X = [1 1 2 3 5 8 13 21];
Y = diff(X)
Y =
0 1 1 2 3 5 8
2)矩阵行之间的差分
代码及运算
Matlab
X = [1 1 1; 5 5 5; 25 25 25];
Y = diff(X)
Y =
4 4 4
20 20 20
3) 二阶差分
代码及运算
Matlab
X = [0 5 15 30 50 75 105];
Y = diff(X,2)
X = [0 5 15 30 50 75 105];
Y1=diff(X)
Y2=diff(Y1)
Y =
5 5 5 5 5
Y1 =
5 10 15 20 25 30
Y2 =
5 5 5 5 5
4) 矩阵列之间的差分
说明:创建一个 3×3 矩阵,然后计算各列之间的一阶差分。
代码及运算
Matlab
X = [1 3 5;7 11 13;17 19 23];
Y = diff(X,1,2)
Y =
2 2
4 2
2 4