多功能运算求解器----matlab中bsxfun函数
【学习背景】
在我学习高斯函数中,看到了out=bsxfun(@times, x, w )这么一句程序,这引起了我的好奇,因而查看了matlab工具箱和网上一些资料,发现该函数bsxfun功能很多,可以说是一个多功能运算求解器。接下来,针对bsxfun函数基础运用,根据个人理解和查阅资料做一些基础介绍,加强记忆和方便他人查阅。
【函数定义】
bsxfun函数是针对两个数组或矩阵之间元素进行逐个计算的一种函数,它由T来决定怎样运算,且该函数与matlab中repmat函数和for循环具有相似的功能。
【运算形式】
函数形式如下:out=bsxfun(T,a,b),T代表矩阵a和矩阵b要进行的运算。T可以为(@plus,@minus,@times,@rdivide,@ldivide,@power,@eq,@min,@max)等多个内置函数或自己所写的函数句柄、m文件。
【运算效果】
针对同样的矩阵或数组进行运算,发现使用bsxfun函数运算效率最快,for循环次之,repmat函数最慢,所以在运算大数据量或需要提升运算效率的程序中,使用bsxfun函数是最棒的。
【使用说明】
假设a和b维数相同,则可直接进行加减乘除运算,如果维数不一致,且a或b必须有一个存在维数为1,则将这个维数为1的行或列进行复制,使其与另