我试图在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;
在重新加载数据几次之后。Mat文件,但只是这样:
struct.field1;
struct.field2;
亲切的问候,
Romano
为了避免添加更深的嵌套结构,您可以使用内容选项-struct
将所有字段保存为单独的变量MystructName.field1 = 0
MystructName.field2 = 1
save('data.mat', '-struct', 'MystructName')
然后将数据加载到一个变量中,我将看到结构没有改变
MyStructName = load('data.mat')
MyStructName =
field1: 0
field2: 1
p。也许这只是在您的示例中,但将结构体命名为struct
是不好的,因为它覆盖了名为struct
的Matlab内置函数。