使用变量识别'print -dpdf file_name'

时间:2016-08-18 15:25:35

标签: octave

我在使用'print -dpdf file_name'将图(或图)写入文件时,尝试使用格式化字符串来标识文件位置。

我试过了:

    k=1;
    file_name = sprintf("\'/home/user/directory to use/file%3.3i.pdf\'",k);
    print -dpdf file_name;

但这只会让我写一个写给〜/ file_name.pdf的数字,这不是我想要的。我已经尝试了其他几种方法,但我找不到导致第三项(在此示例中为file_name)的方法。我还没有找到任何其他打印功能,允许我对文件执行格式化(或图形)的格式化写入('-dpdf'选项)。

我需要单引号,因为我想写文件的位置的路径名包含空格。 (我正在开发一个每天更新运行Fedora 24的Linux机箱。)

如果我使用上面的行计算文件名,然后将其剪切并粘贴到print语句中,一切都按照我的意愿完成。我尝试过使用

    k=1;
    file_name = sprintf("\'/home/user/directory to use/file%3.3i.pdf\'",k);    
    print ("-dpdf", '/home/user/directory to use/file001.pdf');

但是简单地切换到不同形式的print语句并不能解决问题,尽管现在我收到一条错误消息:

    GPL Ghostscript 9.16: **** Could not open the file '/home/user/directory to use/file001.pdf' .
    **** Unable to open the initial device, quitting.
    warning: broken pipe

3 个答案:

答案 0 :(得分:1)

如果您使用foo a b,则与foo ("a", "b")相同。在您的情况下,您致电print ("-dpdf", "file_name")

k = 1;
file_name = sprintf ("/home/user/directory to use/file%3.3i.pdf", k);
print ("-dpdf", file_name);

答案 1 :(得分:0)

观察:

>> k=1;
>> file_name = sprintf ('/home/tasos/Desktop/a folder with spaces in it/this is file number %3.3i.pdf', k)
 file_name = /home/tasos/Desktop/a folder with spaces in it/this is file number 001.pdf
>> plot (1 : 10);
>> print (gcf, file_name, '-dpdf')

enter image description here

Tadaaa!

所以是的,不需要单引号。当你“手动输入”时单引号起作用的原因是因为你实际上是用单引号在现场创建字符串。

话虽如此,在生成使用fullfile命令的绝对路径时通常是个好主意。看看吧。

答案 2 :(得分:0)

Tasos Papastylianou @TasosPapastylianou提供了很大的帮助。我的问题现在已经解决了。