File 如何使用八度变量文件名将结构保存到文件中?
在Octave中,我想将一个结构保存到一个文本文件中,该文件的名称在脚本运行时决定。在我的方法中,我总是会遇到一个错误:File 如何使用八度变量文件名将结构保存到文件中?,file,struct,save,octave,File,Struct,Save,Octave,在Octave中,我想将一个结构保存到一个文本文件中,该文件的名称在脚本运行时决定。在我的方法中,我总是会遇到一个错误: expecting all arguments to be strings. (对于固定文件名,这很好。)那么如何使用可变文件名将结构保存到文件中呢 全部清除; myStruct(1).resultA=1; myStruct(1).resultB=2; myStruct(2)。结果=3; myStruct(2),resultB=4; variableFilename=st
expecting all arguments to be strings.
(对于固定文件名,这很好。)那么如何使用可变文件名将结构保存到文件中呢
全部清除;
myStruct(1).resultA=1;
myStruct(1).resultB=2;
myStruct(2)。结果=3;
myStruct(2),resultB=4;
variableFilename=strftime(“结果\u%Y-%m-%d\u%H-%m.mat”,localtime(time())
保存fixedFilename.mat myStruct;
%这将起作用并将结构保存在fixedFilename.mat中
保存(“-text”、variableFilename、myStruct);
%这会产生错误:所有参数都应为字符串
在倍频程中,使用“另存为”函数时,需要执行以下操作:
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);
使用“另存为”函数时,需要执行“保存”(“-text”、variableFilename、“myStruct”);i、 所有参数都是字符串。这非常有效,非常感谢!感谢您的回答,它还包含了我问题的正确解决方案,正如JuanPi已经说过的:调用save函数时,我必须将结构的名称放在“”中。为了将这些字符串保存在单元格中,将它们放在结构中而不是单元格中可能更方便,因为这样上面的解决方案也可以工作,并且不需要自己处理文件输出。