首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Julia中向量化函数的组合求值

Julia中向量化函数的组合求值
EN

Stack Overflow用户
提问于 2017-03-17 00:40:29
回答 2查看 204关注 0票数 6

在Julia中,带点.的矢量化函数用于逐个元素的操作。

运行f.(x)意味着f(x[1])f(x[2]),...是按顺序执行的

但是,假设我有一个函数,它有两个参数,比如g(x,y)

我想要g(x[1],y[1])g(x[2],y[1])g(x[3],y[1]),...,g(x[1],y[2])g(x[2],y[2])g(x[3],y[2]),...

有没有办法评估xy的所有组合

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-03-17 04:31:57

Matt的回答是好的,但我想提供一个使用数组理解的替代方案:

代码语言:javascript
复制
julia> x = 1:5
       y = 10:10:50
       [i + j for i in x, j in y]
5×5 Array{Int64,2}:
 11  21  31  41  51
 12  22  32  42  52
 13  23  33  43  53
 14  24  34  44  54
 15  25  35  45  55

在我看来,数组理解通常比broadcastreshape更具可读性和灵活性。

票数 5
EN

Stack Overflow用户

发布于 2017-03-17 00:49:44

是的,重塑y,使其与x正交。.矢量化使用broadcast来完成它的工作。我认为这是在所有其他维度上“挤压”单个维度。

这意味着对于向量xy,您可以简单地通过对其中一个进行整形来计算xy的所有组合的乘积:

代码语言:javascript
复制
julia> x = 1:5
       y = 10:10:50
       (+).(x, reshape(y, 1, length(y)))
5×5 Array{Int64,2}:
 11  21  31  41  51
 12  22  32  42  52
 13  23  33  43  53
 14  24  34  44  54
 15  25  35  45  55

注意,数组的形状与参数的方向相匹配;x跨越行,而y跨越列,因为它被转置为单行矩阵。

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

https://stackoverflow.com/questions/42839953

复制
相关文章

相似问题

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