Matlab发布 - 想要使用自定义文件名来发布几个pdf文件

时间:2014-01-22 16:52:18

标签: matlab pdf rename publish

我有几个数据日志文件(这里: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进行适当的修改。“

有什么建议吗?

提前致谢, 马丁

1 个答案:

答案 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

还使用filepartsfilesep。有关重命名和移动文件的其他方法,请参阅this question