在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
答案 0 :(得分:4)
在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);