我正在尝试在MAT文件中保存和加载结构数组,但每次重新加载时结构数组都会不断变化。如果保存以下内容并重新加载它,它会继续在前面添加struct。
struct.field1
struct.field2
save data.mat struct
struct = load('data.mat');
我知道这种情况正在发生,因为我将文件加载到变量中,这使得它成为一个结构,如果我只使用它就不会:
load('data.mat')
但是我在函数中调用load命令,因此我无法使用它。有没有人知道如何解决这个问题,所以我没有得到:
struct.struct.struct.struct.struct.field1;
struct.struct.struct.struct.struct.field2;
重新加载data.mat文件几次后,只是这样:
struct.field1;
struct.field2;
亲切的问候,
罗马诺
答案 0 :(得分:1)
为避免添加更深层次的嵌套结构,您可以选择使用内容选项 -struct
将所有字段保存为单个变量MystructName.field1 = 0
MystructName.field2 = 1
save('data.mat', '-struct', 'MystructName')
然后将数据加载到变量中,我会看到结构没有改变
MyStructName = load('data.mat')
MyStructName =
field1: 0
field2: 1
聚苯乙烯。也许这仅在您的示例中,但将结构命名为struct
是不好的,因为它会覆盖名为struct
的Matlab内置函数。