7

在 Octave 中,我想将一个结构保存到一个文本文件中,其中文件的名称是在脚本运行时确定的。用我的方法,我总是得到一个错误:

expecting all arguments to be strings. 

(对于固定文件名,这很好用。)那么如何使用变量文件名将结构保存到文件中?

clear all;
myStruct(1).resultA = 1;
myStruct(1).resultB = 2;
myStruct(2).resultA = 3;
myStruct(2).resultB = 4;

variableFilename = strftime ("result_%Y-%m-%d_%H-%M.mat", localtime(time()))

save fixedFilename.mat myStruct; 
% this works and saves the struct in fixedFilename.mat

save( "-text", variableFilename, myStruct); 
% this gives error: expecting all arguments to be strings
4

1 回答 1

6

在 Octave 中,当使用 save 作为函数时,您需要执行以下操作:

myfilename = "stuff.txt";
mystruct = [ 1 2; 3 4]
save("-text", myfilename, "mystruct");

上面的代码将创建一个 stuff.txt 文件,并将矩阵数据放入其中。

上面的代码只有在 mystruct 是一个矩阵时才有效,如果你有一个字符串单元格,它将失败。对于那些,你可以自己滚动:

 xKey = cell(2, 1);
 xKey{1} = "Make me a sandwich...";
 xKey{2} = "OUT OF BABIES!";
 outfile = fopen("something.txt", "a");
 for i=1:rows(xKey),
   fprintf(outfile, "%s\n", xKey{i,1});
 end
 fflush(outfile);
 fclose(outfile);
于 2012-08-23T15:31:14.753 回答