保存和加载结构数组 MATLAB

Save and load structure array MATLAB

我正在尝试在 MAT 文件中保存和加载结构数组,但每次重新加载时结构数组都会不断变化。如果保存以下并重新加载它,它会一直在前面添加结构。

struct.field1
struct.field2

save data.mat struct

struct = load('data.mat');

我知道这是因为我将文件加载到一个变量中,这使它成为一个结构,如果我只使用它就不会:

load('data.mat')

但是我在一个函数中调用加载命令,因此我不能使用它。有谁知道如何解决这个问题,这样我就不知道了:

struct.struct.struct.struct.struct.field1;
struct.struct.struct.struct.struct.field2;

在重新加载 data.mat 文件几次后,但只是这样:

struct.field1;
struct.field2;

亲切的问候,

罗马诺

为避免添加更深的嵌套结构,您可以选择使用内容选项 -struct

将所有字段保存为单独的变量
MystructName.field1 = 0
MystructName.field2 = 1

save('data.mat', '-struct', 'MystructName')

然后加载数据到一个变量,我会看到结构没有改变

MyStructName = load('data.mat')
MyStructName = 
    field1: 0
    field2: 1

Ps。也许这只是在您的示例中,但是将您的结构命名为 struct 是不好的,因为它会覆盖名为 struct.

的 Matlab 内置函数