【问题标题】:Constructing a multi-dimensional array in Julia在 Julia 中构造一个多维数组
【发布时间】:2013-01-01 01:17:39
【问题描述】:

在 MATLAB 中,可以使用以下语法创建一维矩阵 a 和二维矩阵 b

a = [2,3]
b = [2,3;4,5]

在 Julia 中,使用相同的语法构造一维数组 a 是可行的。但是,使用相同的语法构造二维数组 b 失败。

b 定义如下:

b = cat(2,[2,4],[3,5])

在 Julia 中是否有明确定义二维数组的语法快捷方式?如果有,是什么?

【问题讨论】:

    标签: multidimensional-array julia


    【解决方案1】:

    你也可以说 [1 2; 3 4],结果与 Matlab 中的结果相同。

    【讨论】:

    • 没有逗号令人遗憾,但我想我们必须同时取悦欧洲和美国人,因为他们有不同的逗号和句号约定
    【解决方案2】:

    您可能正在寻找这个:

    a = [2,3]
    b = [2 3;4 5]
    

    以下是 Julia 文档“Major Differences From MATLAB”部分的相关段落:

    使用[x,y,z] 语法连接标量和数组在第一维(“垂直”)中连接。对于第二个维度(“水平”),使用[x y z] 中的空格。为了构造块矩阵(在前两个维度中连接),语法[a b; c d] 用于避免混淆。

    【讨论】:

      【解决方案3】:

      以下语法有效(但不如 MATLAB 等效语法那么简洁):

      b = [[2 3],[4 5]]
      

      【讨论】:

      • 在 julia 0.5 或 0.6 中不起作用。 (写这个答案时它曾经在 0.3 中工作)。但它现在已经过时了。
      【解决方案4】:

      截至 Julia 0.6 根据您寻求的维度,您可以使用

      # hcat
      b = [[2, 3] [4, 5]]
      2×2 Array{Int64,2}: [2 4; 3 5]
      
      # vcat
      c = [[2 3] ; [4 5]]
      2×2 Array{Int64,2}: [2 3; 4 5]
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-01-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-06-10
        • 2021-06-12
        • 1970-01-01
        • 2013-09-18
        相关资源
        最近更新 更多