For loop Julia中使用for循环提取数据的问题

For loop Julia中使用for循环提取数据的问题,for-loop,indexing,julia,For Loop,Indexing,Julia,我试图使用for循环从一个名为X的结构对象中提取数据,如下所示 用朱莉娅可以吗?更清楚地说,X是树的名称,解决方案是一个级别,总线是另一个级别,总线下的总线数,在每个总线数下,我们有两个变量,vm和va。如何提取此类数据 问候 for i=1:30 Mag(i)=X["solution"]["bus"]["i"]["vm"]; Ang(i)=X["solution"]["bus"]["i"]["va"]; end 您需要提供一个完全可复制的示例,但假设Mag和Ang是向量,X最初是从JSON创

我试图使用for循环从一个名为X的结构对象中提取数据,如下所示

用朱莉娅可以吗?更清楚地说,X是树的名称,解决方案是一个级别,总线是另一个级别,总线下的总线数,在每个总线数下,我们有两个变量,vm和va。如何提取此类数据

问候

for i=1:30
Mag(i)=X["solution"]["bus"]["i"]["vm"];
Ang(i)=X["solution"]["bus"]["i"]["va"];
end

您需要提供一个完全可复制的示例,但假设
Mag
Ang
是向量,
X
最初是从JSON创建的(这意味着它的键是字符串),您可以这样编写:

for i=1:30
    Mag[i]=X["solution"]["bus"]["$i"]["vm"]
    Ang[i]=X["solution"]["bus"]["$i"]["va"]
end
编辑

根据您的评论,这可能是您可以做的最简单的事情:

Mag = [X["solution"]["bus"]["$i"]["vm"] for i in 1:30]
Ang = [X["solution"]["bus"]["$i"]["va"] for i in 1:30]

您不必在此之前定义这些变量。

我尝试了这个,但仍然得到一个错误,错误是LoadError:UndevarError:Mag未在C:\Users\Abd PC\Desktop\testing PowerModels\testing\u PowerModels:4 testing\u PowerModels:5[内联]开始的表达式中定义无的顶级作用域:0在分配给它之前,必须先定义
Mag
。请复制粘贴您的全部相关代码,好像您只显示其中的一部分很难帮助;使用Ipopt;X=运行ac_opf(“pglib_opf_case30_ieee.m”,IpoptSolver());对于i=1:30 Mag[i]=X[“解决方案”][“总线”][“$i”][“虚拟机”]Ang[i]=X[“解决方案”][“总线”][“$i”][“va”]endI已修改我的代码以使用PowerModels;使用Ipopt;X=运行ac_opf(“pglib_opf_case30_ieee.m”,IpoptSolver());Mag=64[];Ang=64[];对于i=1:30 Mag[i]=X[“solution”][“bus”][“$i”][“vm”]Ang[i]=X[“solution”][“bus”][“$i”][“va”]end然而,我仍然会得到以下错误LoadError:UndefVarError:float64未定义我对处理这种语言感到沮丧。为什么需要定义float64呢!您应该编写
Float64
而不是
Float64
,Julia手册对此进行了解释:。同样在这种情况下,您应该编写例如
Mag=zeros(30)
Ang=zeros(30)
。我将添加另一个选项,您可以在答案中使用,因为它更详细。