将列表中的R矩阵分配到Sage列表

时间:2016-06-30 11:42:30

标签: r for-loop sage

我有一个R列表(实际上是列表列表),其中包含我想在SAGE中运行凸优化过程的数据。

代码就像这样

sage_list = [None] * 2
for k in range(2):
    x = r('my_r_list[[1]][[1]][[k+1]]')
    sage_list[k] = x._sage_()

首先x分配不一致。如果我执行多次相同的代码,我会获得不同的数据。但更重要的是,sage_list[k]赋值会出错:

NameError: name 'structure' is not defined  
然而,

执行以下操作:

sage_list = [None] * 2
x = r('my_r_list[[1]][[1]][[1]]')
y = r('my_r_list[[1]][[1]][[2]]')
sage_list[0] = x._sage_()
sage_list[1] = y._sage_()

任何想法为什么? (当然,实际上我有超过2次迭代)

1 个答案:

答案 0 :(得分:0)

此解决方案实际上有效

x = r('my_r_list')[[1]][[1]][[k+1]] 

r()产生和RElement类型的对象,R索引在其上工作。