我有几个数据日志文件(这里:34),我必须计算一些特定值。我写了一个单独的函数来在pdf文件中发布计算结果。但是我只能一个接一个地发布一个文件,所以发布所有34个文件需要一段时间。
现在我想用循环自动化 - 导入数据,计算值并在新的pdf文件中发布每个日志文件的结果。我想在最后为每个日志文件提供34个pdf文件。
我的问题是,我找不到在发布过程中重命名pdf文件的方法。 pdf文件始终以计算值的脚本命名。显然,pdf会在循环中被覆盖。所以最后计算了一切,但我只有上次计算的日志文件中的pdf。
有一个改变Matlab发布脚本的hacky解决方案,但由于我没有管理员权限,我不能使用它:
“这真的很麻烦,但我会修改发布以接受新的选项前缀。替换第93行
[scriptDir,prefix] = fileparts(fullPathToScript);
与
if ~isfield(options, 'prefix')
[scriptDir,prefix] = fileparts(fullPathToScript);
else
[scriptDir,~] = fileparts(fullPathToScript);
prefix = options.prefix; end
现在您可以将options.prefix设置为您想要的任何文件名。如果你想成为真正的硬核,也要对supplyDefaultOptions和checkOptionFields进行适当的修改。“
有什么建议吗?
提前致谢, 马丁
答案 0 :(得分:1)
以下是使用movefile
在每次迭代时重命名结果发布的PDF的一个想法:
for i = 1:34
file = publish(files(i)); % Replace with your own command(s)
[pathStr,fileName,ext] = fileparts(file);
newFile = [pathStr filesep() fileName '_' int2str(i) ext]; % Example: append _# to each
[success,msg,msgid] = movefile(file,newFile);
if ~success
error(msgid,msg);
end
end
还使用fileparts
和filesep
。有关重命名和移动文件的其他方法,请参阅this question。