将数组保存到变量名 Octave
Posted
技术标签:
【中文标题】将数组保存到变量名 Octave【英文标题】:Saving array to variable name Octave 【发布时间】:2012-09-27 16:56:36 【问题描述】:我有一个循环,每次在数组中都有新数据。我想在每次插入循环后将该数组保存在 .mat 文件中,并且我希望文件的名称随循环值而改变。假设我循环了 5 次,我想要 5 个文件 array_1.mat array_2.mat array_3.mat array_4.mat array_5.mat
为了测试我的想法,我写了:
for A=1:10;
filename = sprintf('array_%d.mat', A)
save('-mat', filename, 'A');
endfor
在 octave 中运行此代码后,我确实得到了 5 个名称正确的文件,但它们似乎不是 .mat 文件,我无法将它们再次加载到 octave 中。我尝试了很多其他小的语法更改,但似乎没有任何效果。谁能告诉我我做错了什么和/或给我一个测试示例,该示例使用循环变量更改 a.mat 文件的名称。 谢谢
【问题讨论】:
【参考方案1】:这对我有用,所以我猜你的问题出在加载命令上。你是如何加载文件的?你应该load array_5.mat
【讨论】:
hmmm... 看起来它应该可以工作。当我尝试加载 array_5.mat 时,我只收到错误:加载:无法找到文件 array_5.mat 但我可以清楚地看到该文件位于当前目录中。虽然当我尝试通过单击直接打开文件时,它显示“打开文件时出现问题”。我正在运行 Ubuntu 和 Octave 版本 3.2.4。这就是你正在运行的吗? @Elena 尝试 cd 上下一级目录。我认为旧版本中存在一个错误(并且您使用的是相当旧的版本)。我在 Debian 上使用 Octave 3.6.2。您可以从源代码构建它(在 Ubuntu 上实际上并不难,请参阅 wiki.octave.org/Debian )或者您可以使用非官方二进制文件之一 wiki.octave.org/Octave_for_GNU/Linux#Unofficial_binaries )以上是关于将数组保存到变量名 Octave的主要内容,如果未能解决你的问题,请参考以下文章