我有几个数据日志文件(此处: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 进行适当的修改。”
有什么建议吗?
提前致谢, 马丁
最佳答案
这是一个使用 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了解重命名和移动文件的其他方法。
关于Matlab发布-想要使用自定义文件名发布多个pdf文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21289042/