保存并加载结构数组MATLAB

时间:2016-10-12 09:21:04

标签: matlab structure mat-file

我正在尝试在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;

亲切的问候,

罗马诺

1 个答案:

答案 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内置函数。