Matlab向量化编程的利器
bsxfun函数的用法
假设A是m*n维的矩阵,B是1*n维的行向量,现在希望A的每一行都加上B,则可用下面语句
bsxfun(@plus,A,B)
实际上该语句等效为
A+repmat(B,m,1)
即把B向量扩展为与A兼容的m*n维矩阵,然后再与A相加。但在bsxfun中,这个扩展的操作是内部虚拟进行的,并不实际占用内存,因此更快。
除了@plus,还有@time,@rdivide,等二元运算,具体用法参见文献2

C = bsxfun(fun,A,B) appliesthe element-by-element binary operation specified by the functionhandlefun to arrays A and B,with singleton expansion enabled.fun can be oneof the following built-in functions:

本文介绍了Matlab中bsxfun函数的使用,它能用于矩阵的向量化操作,如将1*n维行向量B加到m*n维矩阵A的每一行上,等效于A+repmat(B,m,1),但更节省内存。bsxfun不仅支持@plus运算,还支持@time、@rdivide等多种二元运算。"
6250365,301378,GlusterFS分布式文件系统安装配置与性能评估,"['分布式存储', '文件系统', '服务器集群', 'Linux', '性能优化']
最低0.47元/天 解锁文章
1467

被折叠的 条评论
为什么被折叠?



