MATLAB Answers

Creating Variable Output Filename

8 views (last 30 days)
Aadil on 30 Jul 2012
Hi, I have a script that generates a pdf full of plots.
I would like the output filename *.pdf file to be automatically named according to a variable which contains a date and title
How can I insert a variable filename?
This is the code which saves everything into a pdf:
ps2pdf('psfile', '', 'pdffile', 'filename.pdf', 'gspapersize', 'a4')


Sign in to comment.

Accepted Answer

Walter Roberson
Walter Roberson on 30 Jul 2012
psfilename = sprintf('', datestr(TheDate, 'yyyymmdd') );
ps2pdf('psfile', psfilename, 'pdffile', 'filename.pdf', 'gspapersize', 'a4')


Aadil on 31 Jul 2012
Thanks, I tried this, it didn't work
I tried this instead, it works for a simple text filename but not if I want to insert a value from an array:
pfilename = ['sdsgafdsgf' '.pdf'];
ps2pdf('psfile', '', 'pdffile', pfilename, 'gspapersize', 'a4')
When I try insert raw(3) - which is the value from an array containing the date:
>> raw(3)
ans =
'09/07/2012 23:22:01'
.. I get this error:
??? Error using ==> fopen
Invalid filename.
Error in ==> ps2pdf>LocalParseArgs at 199
pdf_fid = fopen(param_value,'w');
Error in ==> ps2pdf at 105
gsData = LocalParseArgs(varargin{:});
Error in ==> Final_Combined at 2398
ps2pdf('psfile', '', 'pdffile', pfilename, 'gspapersize', 'a4')
I understand this date - 09/07/2012 23:22:01 - might not be in the correct format but it doesn't work even for text from an array
Walter Roberson
Walter Roberson on 31 Jul 2012
How do you insert raw(3) ? The fact that raw(3) shows quotation marks on output tells us that raw is a cell array, and the third string in it would be accessed by raw{3} rather than raw(3) .
Aadil on 31 Jul 2012
Great! That worked thanks.
My next dilemna is converting the date into a filename friendly format, but I'll ask that in a seperate question

Sign in to comment.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!