赞
踩
简单的调用方法:
bsxfun(@plus,A,B),其中@plus代表的是加法,还可以换成减法@minus,乘法@times等,可以参考matlab里面的帮助文档,对着bsxfun按F1即可。
有何用处?
我目前用来就是实现对矩阵A和B的加减乘除操作,它的优势在于,当A和B的维度不相等,并且A和B各自有一个维度必须为1时,简单的说就是使用bsxfun的前提条件是A和B的维度分别为1*m和n*1,那么在matlab中进行操作的时候,不必使用repmat函数调整它俩的维度,这个函数会自动调整。
实例
A=[1 2 3]
B=[4; 5 ;6]
bsxfun(@plus,A,B)
A =
1 2 3
B =
4
5
6
ans =
5 6 7
6 7 8
7 8 9
如果不用这个函数,那么在matlab里面操作的时候通常为:
A=[1 2 3];
B=[4; 5 ;6];
A=repmat(A,3,1)
B=repmat(B,1,3)
A+B
A =
1 2 3
1 2 3
1 2 3
B =
4 4 4
5 5 5
6 6 6
ans =
5 6 7
6 7 8
7 8 9
本文同步分享在 博客“风翼冰舟”(CSDN)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。