python中的Matlab类型结构

python中的Matlab类型结构,python,matlab,structure,Python,Matlab,Structure,有没有办法用python实现下面的matlab代码 % Initialization savedT2(N) = struct(); minValerr(M) = struct(); %M, N are sizes % Looping for lib0=1:M for lib1=1:N %doSeveralThings() savedT2(lib1).filed1 = resultWithNOperations save s

有没有办法用python实现下面的matlab代码

% Initialization 
savedT2(N) = struct(); minValerr(M) = struct(); %M, N are sizes
% Looping  
for lib0=1:M
    for lib1=1:N  
        %doSeveralThings()  
        savedT2(lib1).filed1 = resultWithNOperations  
        save savedT2 savedT2  
    end  
    minValerr(lib0).field2 = savedT2;  
    save minValerr minValerr  
end  
我在python中使用了以下“ctype”结构定义样式:

class savedT2(Structure):  
    # structure to be called within functional operations  
    _fields_ = [("field1", c_int)] 
第二个结构定义为:

class minValerr(Structure):  
    # structure to be called within functional operations with fields: field2  
    _fields_ = [("field2", c_int)]  
与Matlab代码类似,我们有:

rec0 = savedT2(); rec1 = minValerr  
for k in range(M):
    for j in range(N):
        doSomething()
        rec0[j].field1= resultsDoSoemthin
#Assigning 
    rec1[k].field2 = rec0

但这种方法不起作用。我希望避免使用列表、字典和类似的容器(除非使用它们是唯一可用的选项);因为该操作必须执行100000次以上。除此之外,我还希望在使用之前未定义的新字段不断更新python函数之后,将具有多个字段的结构传递给许多python函数。有没有一种用python实现上述matlab代码的最佳方法?

matlab可以自动将其代码转换为C/C++,您可以在“matlab编码器”中找到这些函数。然后,在Python中重用它们

MATLAB有一个。您可以直接从Python调用MATLAB代码,但结构将作为字典返回。。。Python中有函数
setattr
。您可以获取一个字符串并将一个方法或属性附加到给定的对象,以保持点运算符。。。顺便问一下,为什么您的结构只有一个字段?这与您的伪代码示例有关,还是与您的应用程序中的伪代码示例相同?您是否尝试过使用字典,它们是否真的太慢了?谢谢@nekomatic。如果没有其他的选择,我可能会考虑使用DICT。@斯文克鲁格:谢谢,嵌套这些结构自然会包含新的领域。但是上面的代码片段被用作示例。对于
结构的子类
,什么实际上不起作用?错误消息是什么?
rec0
实际上是什么样子?也许它不是一个
结构的
列表
。在Python中,如果未将
X
定义为至少包含
i-1
元素,则不能通过键入
X[i]='value'
在MATLAB中指定like。顺便说一句,你的意图可能是错误的。在您的示例中,
rec0[j]=…
的赋值将始终位于索引
j=N-1
上。同样适用于
rec1[k]