Julia 使用符号变量创建任意数组

Julia 使用符号变量创建任意数组,julia,Julia,是否有一个内置函数来创建带有符号变量的数组 任意尺寸的 例如,要创建N^2个符号变量来填充相应的矩阵: [x11, x12, ,x1N ..., ..., ,.. XN1, xN2, ,xNN] 您只需创建符号变量数组数组{T,N}。Julia的参数化键入可以处理它 示例:SymEngine.jl 您可以创建一个矩阵{symmengine.Basic}(symmengine.Basic是其符号表达式所在的类型)。Julia的一般调度使inv这样的事情起作用 编辑: 再读一遍,我

是否有一个内置函数来创建带有符号变量的数组 任意尺寸的

例如,要创建N^2个符号变量来填充相应的矩阵:

[x11, x12,   ,x1N
 ..., ...,   ,..
 XN1, xN2,   ,xNN]

您只需创建符号变量数组<代码>数组{T,N}。Julia的参数化键入可以处理它

示例:SymEngine.jl

您可以创建一个
矩阵{symmengine.Basic}
symmengine.Basic
是其符号表达式所在的类型)。Julia的一般调度使
inv
这样的事情起作用

编辑:

再读一遍,我想可能还有更多的答案来回答这个问题?如果您指的是符号变量a la SymEngine.jl/SymPy.jl,则可以通过插入字符串来创建不同的符号变量:

symbols("x$i")
答案的第一部分是:只需使用一个为这种类型键入的Julia数组

arr[i,j] = symbols("x$i$j")

很难从这个问题中知道这是您正在寻找的还是其他什么。

您只需创建符号变量数组<代码>数组{T,N}。Julia的参数化键入可以处理它

示例:SymEngine.jl

您可以创建一个
矩阵{symmengine.Basic}
symmengine.Basic
是其符号表达式所在的类型)。Julia的一般调度使
inv
这样的事情起作用

编辑:

再读一遍,我想可能还有更多的答案来回答这个问题?如果您指的是符号变量a la SymEngine.jl/SymPy.jl,则可以通过插入字符串来创建不同的符号变量:

symbols("x$i")
答案的第一部分是:只需使用一个为这种类型键入的Julia数组

arr[i,j] = symbols("x$i$j")

从这个问题很难知道这是你想要的还是别的什么。

我对“符号变量”这个短语有点不清楚,因为朱莉娅有一个符号

如果一个变量是指向某个值的指针,那么您的问题可能是创建数组,其中每个元素也是指向某个值的指针—这将是一个变量数组

在Julia中,您可以创建一个数组,其中每个元素都是指向变量的指针(指向值的指针)。这将是一个符号数组。(如果我的想法是错误的,请有人纠正我。)

没有一个函数可以创建一个符号数组,但对于您的示例(单前缀、方阵),它非常简单

  • 创建字符串前缀数组
  • 创建字符串元素索引数组
  • 连接前缀和索引
  • 将字符串转换为符号



  • 然而,我们还没有定义x11,所以它没有指向任何东西

    julia> eval(S[1,1])
    ERROR: UndefVarError: x11 not defined
     in eval(::Module, ::Any) at ./boot.jl:234
     in eval(::Any) at ./boot.jl:233
    

    任何时候将值存储到命名变量中时,都可以从符号数组中访问该值

    julia> x11 = 1.2
    1.2
    
    julia> eval( S[1,1] )
    1.2
    
    julia> 3*eval(S[1])
    3.6
    


    这可能是一种创建查找表的有趣方法。

    我对“符号变量”这个短语有点不清楚,因为Julia有一个符号

    如果一个变量是指向某个值的指针,那么您的问题可能是创建数组,其中每个元素也是指向某个值的指针—这将是一个变量数组

    在Julia中,您可以创建一个数组,其中每个元素都是指向变量的指针(指向值的指针)。这将是一个符号数组。(如果我的想法是错误的,请有人纠正我。)

    没有一个函数可以创建一个符号数组,但对于您的示例(单前缀、方阵),它非常简单

  • 创建字符串前缀数组
  • 创建字符串元素索引数组
  • 连接前缀和索引
  • 将字符串转换为符号



  • 然而,我们还没有定义x11,所以它没有指向任何东西

    julia> eval(S[1,1])
    ERROR: UndefVarError: x11 not defined
     in eval(::Module, ::Any) at ./boot.jl:234
     in eval(::Any) at ./boot.jl:233
    

    任何时候将值存储到命名变量中时,都可以从符号数组中访问该值

    julia> x11 = 1.2
    1.2
    
    julia> eval( S[1,1] )
    1.2
    
    julia> 3*eval(S[1])
    3.6
    


    这可能是一种创建查找表的有趣方法。

    这是否支持操作?例如,用一个符号矩阵和另一个实数矩阵进行矩阵乘法?此外,我在安装这个软件包时遇到问题。是的,它只使用Julia的调度和升级系统。矩阵乘法调用对泛型函数的回退,该函数在元素类型定义了
    *
    +
    的任何情况下都能工作。有关安装问题,请在相应的Github repository.Perfect上打开一个问题。我已经提交了问题。这是否支持操作?例如,用一个符号矩阵和另一个实数矩阵进行矩阵乘法?此外,我在安装这个软件包时遇到问题。是的,它只使用Julia的调度和升级系统。矩阵乘法调用对泛型函数的回退,该函数在元素类型定义了
    *
    +
    的任何情况下都能工作。有关安装问题,请在相应的Github repository.Perfect上打开一个问题。我已经提交了问题。如果这些答案中的任何一个解决了你的问题,那么你应该接受其中一个。如果这些答案中的任何一个解决了你的问题,那么你应该接受其中一个。