【问题标题】:Apply function to multiple arrays in Matlab [duplicate]将函数应用于Matlab中的多个数组[重复]
【发布时间】:2013-02-17 01:40:11
【问题描述】:

除了创建更大的数组之外,还有什么简单的方法可以将函数 Foo 应用于多个数组(矩阵)A、B、C?

基本上我想要类似于 Python 中的“地图”的东西,例如:

L = [A, B, C] 地图(富,L)

让我们假设情况, 1. 函数 Foo 是按组件应用的,不会改变矩阵的维度,例如 log(), exp()。 2.函数是一个通用函数,作用于整个矩阵,例如removerows()。

【问题讨论】:

  • 查看我对链接问题的回答。 cellfun 函数可以做你想做的事。

标签: matlab


【解决方案1】:

默认情况下,MATLAB 中没有内置的“map”模拟。但是,您始终可以自己编写功能;已经完成here。放入您的 MATLAB bin 中,您应该可以开始使用了。

如果您希望您的代码可以跨系统移植,我建议您使用简单的循环。

【讨论】:

    【解决方案2】:

    您可以使用vararginvarargout 创建一个接受任意数量输入并产生任意数量输出的函数。

    那么你就可以写了:

    [D, E, F] = map(foo, A, B, C);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多