首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MATLAB:如何将功能组件化应用

MATLAB:如何将功能组件化应用
EN

Stack Overflow用户
提问于 2011-02-13 19:40:32
回答 2查看 15.3K关注 0票数 14

假设我有一个函数calculateStuff(x),它接受标量作为参数并返回标量。

假设我有一个向量X,我想将calculateStuff应用于X中的每个组件,并得到结果的向量,并将其存储在一个新的向量Y中。

显然,Y=calculateStuff(X)是非法的,除了循环之外,还有什么方法可以做到吗?

EN

回答 2

Stack Overflow用户

发布于 2011-02-13 19:42:52

你有三个选择:

Y = arrayfun(@calculateStuff,X)

  1. 修改calculateStuff,以便它可以接收数组并返回数组
  2. 编写循环
  3. 使用arrayfun隐藏循环:
票数 16
EN

Stack Overflow用户

发布于 2011-02-13 19:42:56

大多数Matlab操作将允许您输入矩阵并返回矩阵。您应该能够重写calculateStuff()来获取一个矩阵并返回一个矩阵。这通常比使用for循环快得多。Matlab中的循环在时间上非常昂贵.

您需要查看的是正常操作的“点”版本。例如,而不是

代码语言:javascript
复制
y = z * x;

代码语言:javascript
复制
y = z .* x;

第一个将执行矩阵乘法,这可能不是你想要的矢量化代码。第二种方法是对z和x进行逐元素乘法.

请参阅here并搜索“点操作”。

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

https://stackoverflow.com/questions/4986403

复制
相关文章

相似问题

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