如何在不删除文件的contenu的情况下保存在同一个.mat文件中?

时间:2016-08-15 11:36:32

标签: octave

我需要保存在同一个文件中。\ n'三个矩阵M1,M2,M3;通过测试,我得到其中一个矩阵,在所有测试之后,每个矩阵都需要保存在同一个文件中。

function [M1,M2,M3]= atlet(Numtest)
 if (Numtest==1)
  %instruction
elseif (Numtest==2)
 %instruction
elseif (Numtest==3)
 %instruction
endif
save ('alter_test.mat','M1','M2','M3')

endfunction

每次我只有一个矩阵,但是我需要在alter_test.mat中保存所有这些矩阵而不删除任何人。
例如,当我传递此命令时:

[M1,M2,M3]= atlet(1)

我在alter_test.mat中得到了矩阵M1 当我通过这个命令时:

[M1,M2,M3]= atlet(2)

我进入alter_test.mat,矩阵M2和M1被删除。 但是我需要让它们都有M1和M2。 如果你能帮到我,我会非常感激。

1 个答案:

答案 0 :(得分:0)

您可以尝试附加到.mat文件,但是-append将刷新您的索引。在这种情况下你可以定义一个二乘两个矩阵,并且每次在循环中调用.mat文件时增加行,这样你的M1将是前面记录的M1结果的数组。 先这样做:

1.load the .mat file: load('alter_tst.mat','M1','M2','M3');
2.append your new M1-M3 to the previous ones named MT1, MT2,MT3: M1=[M1;MT1];
3.save('alter_tst.mat','M1','M2','M3','-append');

save(...,'append')要附加到上一个保存,之后您可以将之前的保存添加到工作区并将新矩阵附加到旧矩阵,从而创建一个2 X 3矩阵,然后再生成nx 3矩阵。