bsxfun


参考: http://blog.sina.com.cn/s/blog_6ca002a50100wvu1.html

【功能描述】两个数组间元素逐个计算.

【应用场合】当我们想对一个矩阵A的每一列或者每一行与同一个长度相等的向量a进行某些操作(比较大小,乘除等)时,我们只能用循环方法或者利用repmat函数将要操作的向量a复制成和A一样尺寸的矩阵,进而进行操作。从MATLAB R2007a开始,再遇到类似的问题时,我们有了简洁高效的方法,即利用bsxfun函数。

【好处】 向量化编程,节省内存,同时速度提升。
【函数描述】C=bsxfun(fun,A,B):两个数组间元素逐个计算,fun是函数句柄或者m文件,也可以为如下内置函数 
         @plus 加 
         @minus 减 
         @times 数组乘 
         @rdivide 左除 
         @ldivide 右除 
For example: 如何将一个矩阵的每行或每列元素分别扩大不同的倍数?如[1 2 3;4 5 6 ;7 8 9],第一列元素乘以1,第二列元素以2,第三列元素乘以4。
利用bsxfun函数,可以给出下列代码:

a = [1,2,3;4,5,6;7,8,9];
acol = bsxfun(@times,a,[1 2 4])


bsxfunMATLAB中的一个函数,用于对两个数组之间的元素进行逐个计算的二元操作。它可以通过传入函数句柄或者m文件来指定具体的操作。常见的内置函数包括加法、减法、乘法、除法、幂运算等等。你可以使用bsxfun来执行各种元素级别的操作,比如计算矩阵每一列减去其对应列的平均值。 在旧版本的MATLAB中,如果没有内置的bsxfun函数,可以使用一些自定义的方法来实现相同的功能。例如,在R2007a之前的版本中,可以使用一个名为"bsxfun"的mex函数来代替内置的bsxfun函数来执行相同的操作。该mex函数保留了不复制任何大数组以执行其功能的重要功能。<span class="em">1</span><span class="em">2</span> #### 引用[.reference_title] - *1* [bsxfun 替代:用 bsxfun 替代旧版本的 MATLAB,其中它不是内置的。-matlab开发](https://download.youkuaiyun.com/download/weixin_38515573/19247341)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [MATLAB中的bsxfun函数](https://blog.youkuaiyun.com/Yaroo/article/details/78729779)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值