Matlab-将构造的字符串值传递给saveas,无法获得有效的文件名

时间:2017-08-03 13:54:34

标签: string matlab

我正在研究一个我在excel文件中读取的项目,并根据该数据制作一个图。我需要记下我打开的文件名,添加字母' a'到最后,然后将我的情节保存为.jpg。我现在的方式看起来应该是正常的,但saveas不喜欢文件名并给我一个无效的文件名错误。以下是我工作的一个示例:

filename = 'C:\ExcelTest\T1.xlsm'
    >filename = 
    >    C:\ExcelTest\T1.xlsm
pathnfile = strread(filename, '%s', 'delimiter', '.')
    >pathnfile = 
    >    'C:\ExcelTest\T1'
    >    'xlsm'
pf1 = strcat(pathnfile(1), 'a')
    >pf1 = 
    >    'C:\ExcelTest\T1a'
%... data collection, plotting in f1 = figure(1), etc.
saveas(f1, pf1, 'jpg')
    >Error using saveas (line 81)    Invalid filename

由于我正在更改文件,因此我使用了几次,如果可能的话,我真的想避免输入全名来保存。谢谢!

1 个答案:

答案 0 :(得分:1)

看起来你通过滚动你自己的文件名解析器让你的生活更加复杂。我会选择像:

filename = 'C:\ExcelTest\T1.xlsm';
[pathstr, name, ~] = fileparts(filename);
pf1 = strcat(name, 'a');
saveas(f1, fullfile(pathstr, pf1), 'jpg');