对于我的MATLAB脚本,我加载一个EXCEL工作表。
filename='inp_x_arc.xlsx';
input=xlsread(filename);
现在,我想将数据导出到另一个EXCELsheet中,而不是inp_x_arc
,我希望它是exp_x_arc
。
如何自动更改文件名以将inp
替换为exp
,并保留其余文件名(_x_arc.xlsx
)。
到目前为止,我正在手动输入以下所有内容:
xlswrite('exp_x_arc.xlsx',S)
答案 0 :(得分:1)
字符串操作:
exp_filename=['exp_',filename(5:end)];
OR
使用strrep
:
exp_filename=strrep(filename,'inp_','exp_');
请注意,使用strrep
将替换文件名中所有inp_
出现的地方。
答案 1 :(得分:1)
最安全的方法是使用正则表达式将子字符串inp_
锚定在字符串的开头。
>>filename='inp_x_arc.xlsx';
>>str=regexprep(filename,'^inp_','exp_')
>>str =
'exp_x_arc.xlsx'
根据注释,将原始字符向量与xlswrite
一起使用可能会导致Excel问题。在这种情况下,写入之前用fullfile包装文件名会更安全:
>>filename='inp_x_arc';
>>str=fullfile(regexprep(filename,'^inp_','exp_'));
通常建议尝试避免xlswrite,而改用writetable。