【发布时间】:2020-12-22 19:06:12
【问题描述】:
我完全是 Julia 及其语法的菜鸟。我正在尝试关注 this Julia 上关于半定性编程的文章。
如果有人可以帮助我弄清楚 In[4] 中的 for 循环实际上做了什么,我将不胜感激:
for i in 1:m
A[:, (i-1)*n+1:i*n] .= random_mat_create(n)
b[i] = tr(A[:, (i-1)*n+1:i*n]*X_test)
end
据我了解,它应该创建一个矩阵向量 A(其中 m 个)以及一个 m 维向量 b。我对A 的索引和b 的索引感到非常困惑。
我想解释一下 :, (i-1)*n+1:i*n 这段代码的一部分。我在这里问的原因是因为我也不知道谷歌或在 Julia 文档中搜索什么。
【问题讨论】:
-
数组访问中的 : 本身意味着整个轴。逗号后面的部分是下一个轴,它正在沿着该轴构建一个范围。
-
抱歉这个愚蠢的评论,你的意思是矩阵列?
-
列只是矩阵中的一个轴(二维数组),您可以在 Julia 中通过用逗号分隔多个轴来指定沿多个轴的访问。如果您熟悉 numpy,则同样适用。
-
非常感谢。确实,这看起来像 numpy 或 panda,但我不明白我猜的列之后的输入。这个循环的目的是填充这个矩阵向量,但索引对我来说仍然很神秘。
-
高级索引需要一点时间来适应,你会到达那里的。