Using fileparts and combining with a different file name

18 vues (au cours des 30 derniers jours)
Damith
Damith le 24 Mar 2015
Commenté : Damith le 25 Mar 2015
Hi,
I need to strip the file name and extension (TRMM_1998_01_0103_newntcl.csv) to TRMM_1998_01_0103_newntcl and .csv and then combine the file name with different extension (.nc) and then write the complete file name. I think I am close to that but the last line does not give me the desired output (TRMM_1998_01_0103_newntcl.nc)
Any idea? or any help is appreciated.
cd ('C:\Users\Desktop')
input_file='TRMM_1998_01_0103_newntcl.csv';
[~, fName, ext] = fileparts(input_file);
filenc=fName.'nc';

Réponse acceptée

David Young
David Young le 24 Mar 2015
The last line should be
filenc = [fName '.nc'];
What you are doing here is concatenating two strings. Square brackets can be used to concatenate any kind of array, including strings. (Your previous syntax, with a dot, is used for structures.)

Plus de réponses (1)

Image Analyst
Image Analyst le 25 Mar 2015
Another option, if you know for certain what the first extension is, is to use strrep():
input_file = strrep(input_file, '.csv', 'nc');
No need to call file parts. Or, if you do use fileparts
[folder, baseFileName, ext] = fileparts(input_file);
newBaseName = sprintf('%s.nc', baseFileName);
outputFile = fullfile(folder, newBaseName); % Prepend the folder.

Community Treasure Hunt

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

Start Hunting!

Translated by