当前位置:   article > 正文

【Matlab学习手记】bsxfun的使用

bsxfun

bsxfun函数功能:矩阵A的每个元素针对矩阵B的运算。

  • 调用格式
C = bsxfun(fun,A,B)

     fun为以下函数:

  • 实例1:矩阵A的每列元素减去该列的平均值。

    一般做法,先求A的平均值,得到的结果是1*3的矩阵(按列求平均值),然后将得到的结果进行扩充,即将一行复制成三行使得维度和A保持一致,最后做减法运算。

  1. A = [1 2 10; 1 4 20; 1 6 15]
  2. B = A - repmat(mean(A), 3, 1)
  3. B =
  4. 0 -2 -5
  5. 0 0 5
  6. 0 2 0

    使用bsxfun函数也能得到相同的结果。

  1. C = bsxfun(@minus, A, mean(A))
  2. C =
  3. 0 -2 -5
  4. 0 0 5
  5. 0 2 0
  • 实例2:矩阵A和矩阵B之间的减法运算(至少保证B的行数或者列数有一个和A相同)

    A的列=B的列,则A的每列元素减去B的该列元素值;

    A的行=B的行,则A的每行元素减去B的该行元素值;

    A和B维度一致,则按照A-B进行运算。

  1. A = [1 2 10; 1 4 20;1 6 15]
  2. B = mean(A)
  3. C = [0 -2 -5; 0 0 5; 0 2 0]
  4. bsxfun(@minus, A, B)
  5. bsxfun(@minus, A, B')
  6. bsxfun(@minus, A, C)
  7. A =
  8. 1 2 10
  9. 1 4 20
  10. 1 6 15
  11. B =
  12. 1 4 15
  13. C =
  14. 0 -2 -5
  15. 0 0 5
  16. 0 2 0
  17. ans =
  18. 0 -2 -5
  19. 0 0 5
  20. 0 2 0
  21. ans =
  22. 0 1 9
  23. -3 0 16
  24. -14 -9 0
  25. ans =
  26. 1 4 15
  27. 1 4 15
  28. 1 4 15

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/902555
推荐阅读
相关标签
  

闽ICP备14008679号