赞
踩
C = bsxfun(fun,A,B)
fun为以下函数:
一般做法,先求A的平均值,得到的结果是1*3的矩阵(按列求平均值),然后将得到的结果进行扩充,即将一行复制成三行使得维度和A保持一致,最后做减法运算。
- A = [1 2 10; 1 4 20; 1 6 15]
- B = A - repmat(mean(A), 3, 1)
-
- B =
- 0 -2 -5
- 0 0 5
- 0 2 0
使用bsxfun函数也能得到相同的结果。
- C = bsxfun(@minus, A, mean(A))
-
- C =
- 0 -2 -5
- 0 0 5
- 0 2 0
A的列=B的列,则A的每列元素减去B的该列元素值;
A的行=B的行,则A的每行元素减去B的该行元素值;
A和B维度一致,则按照A-B进行运算。
- A = [1 2 10; 1 4 20;1 6 15]
- B = mean(A)
- C = [0 -2 -5; 0 0 5; 0 2 0]
- bsxfun(@minus, A, B)
- bsxfun(@minus, A, B')
- bsxfun(@minus, A, C)
- A =
- 1 2 10
- 1 4 20
- 1 6 15
- B =
- 1 4 15
- C =
- 0 -2 -5
- 0 0 5
- 0 2 0
- ans =
- 0 -2 -5
- 0 0 5
- 0 2 0
- ans =
- 0 1 9
- -3 0 16
- -14 -9 0
- ans =
- 1 4 15
- 1 4 15
- 1 4 15
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。