julia - Julia 中的单项式向量

标签 julia

假设你有一个向量元组 $a$,我想在 julia 中定义一个函数 p(x)=x^a。

例如,如果 a=(1,2,3),则结果函数将为 x^1 *y^2 * z^3。

我想为任何元组提供一个通用方法,但我不知道合适的表示法。在我的代码中,我有一个元组数组,我想为数组中的每个元组定义一个单项式。

非常感谢您的合作。

最佳答案

这是你想要的吗?

julia> function genmonomial(t::Tuple{Vararg{Integer}})
           @assert !isempty(t) && all(>=(0), t)
           return (x...) -> begin
               @assert length(x) == length(t)
               return mapreduce(x -> x[1]^x[2], *, zip(x, t))
           end
       end
genmonomial (generic function with 1 method)

julia> f = genmonomial((2,3,4))
#1 (generic function with 1 method)

julia> f(2, 1, 1)
4

julia> f(1, 2, 1)
8

julia> f(1, 1, 2)
16

julia> f(2, 2, 2)
512

julia> f(1, 1)
ERROR: AssertionError: length(x) == length(t)

julia> genmonomial(())
ERROR: AssertionError: !(isempty(t)) && all((>=)(0), t)

julia> genmonomial((1.5,))
ERROR: MethodError: no method matching genmonomial(::Tuple{Float64})
Closest candidates are:
  genmonomial(::Tuple{Vararg{Integer}}) at REPL[1]:1

关于julia - Julia 中的单项式向量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74282300/

相关文章:

julia - 如何在 Julia 中使用 LibPQ 插入记录?

plot - Julia 绘制 : replacing true tick values with counterfactual ones

function - 方法定义的顺序给出不同的结果

vector - 在基本 Julia 中选择不属于整数列表的元素

package - Julia - 如何使用我的软件包的 fork 版本而不是 Pkg 附带的标准软件包?

Julia:将东西打包成模块 vs include()-ing

julia - 在 Julia : < command 中运行外部程序

arrays - 在 Julia 中提取数组维度

julia - 如何以与 Julia 中未嵌套变量相同的方式访问嵌套结构中的变量?

plot - 在 Julia 散点图中的点上绘制具有指定方向的箭头