保存和加载结构阵列MATLAB



我试图在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内置函数。

最新更新