将数组保存到变量名称并在Octave中重新获取

时间:2016-03-18 17:04:06

标签: save load octave

我试图在每次循环时将for循环中的数组存储到文件中。此外,我想稍后在另一个循环中使用这些文件。我试过使用保存和加载。但是,它不起作用。这是我尝试过的:

for i=1:5
c=a(a(:,2)==i,:)
filename=sprintf('File_%d.mat',i);
save('-mat',filename,'i');
clear c;
endfor

创建了每个循环的文件,但无法读取这些文件。 然后我尝试将这些文件逐个加载到另一个文件循环中,如下所示

for i=1:5
filename=sprintf('File_%d.mat',i);
load ('-mat',filename, 'i');
end for

我无法在循环中加载文件。有没有人有任何建议?

1 个答案:

答案 0 :(得分:0)

什么不起作用?你只需写#34; ..但无法读取这些文件"和"我无法加载"。所以请创建一个完整的例子和/或描述你的问题。

我猜这可能是你的问题:

在第一个循环中,你在文件File_1.mat中写入值为1,然后在File_2.mat中使用值2编写i,依此类推但我认为你真正想要写入文件的是从i计算的东西,例如

for i=1:5
 c=a(a(:,2)==i,:)
 filename=sprintf('File_%d.mat',i);
 save('-mat',filename,'c');
 clear c;
endfor

然后

for i=1:5
 filename=sprintf('File_%d.mat',i);
 load ('-mat',filename, 'c');
 c
endfor
顺便说一句,你的方法看起来很脏。您可以将多个变量,单元格和数组存储到一个文件中......