首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在MATLAB中,什么时候使用bsxfun是最好的?

在MATLAB中,什么时候使用bsxfun是最好的?
EN

Stack Overflow用户
提问于 2012-10-18 17:31:53
回答 5查看 28.1K关注 0票数 136

我注意到很多关于堆栈和溢出的MATLAB问题的好答案经常使用函数bsxfun。为什么?

动机:bsxfun的MATLAB文档中,提供了以下示例:

代码语言:javascript
运行
复制
A = magic(5);
A = bsxfun(@minus, A, mean(A))

当然,我们可以使用以下命令执行相同的操作:

代码语言:javascript
运行
复制
A = A - (ones(size(A, 1), 1) * mean(A));

事实上,一个简单的速度测试表明,第二种方法大约快20%。那么为什么要使用第一种方法呢?我猜在某些情况下,使用bsxfun会比使用“手动”方法快得多。我真的很有兴趣看到这种情况的例子,并解释为什么它更快。

同样,这个问题的最后一个元素,同样来自MATLAB的bsxfun文档:"C = bsxfun( fun,A,B)将由函数句柄fun指定的逐个元素的二进制操作应用于数组A和B,并启用单例扩展。“短语“启用单例扩展”是什么意思?

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12951453

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档