Effacer les filtres
Effacer les filtres

Code to edit a file name?

8 vues (au cours des 30 derniers jours)
Karl
Karl le 12 Juil 2011
Hello all,
I'm writing a program that calibrates various files. Part of the job I want it to do is to output a new file with the calibrated data. In doing so though I want to edit the original name for the name of the output file.
Matlab seems to have a rather robust string handling system, a bit more perhaps than I'm ready to deal with at the moment. I've found that I can use the "strcat" function to jam two strings together. This will likely lead to a filename.filextensionextratxt.fileextension. But at the moment its the best I can figure out.
Anyone handy out there know of a way to perhaps remove a set number of characters at the end of a string or perhaps a more elegant method?
Thanks for your time!
  2 commentaires
Fangjun Jiang
Fangjun Jiang le 12 Juil 2011
You need to provide an example of your file names and the expected pattern or new file names.
B_Richardson
B_Richardson le 12 Juil 2011
strtok does just that

Connectez-vous pour commenter.

Réponse acceptée

Ping
Ping le 12 Juil 2011
you can call [pathstr, name, ext] = fileparts(filename) to seperate filename and extension.
  1 commentaire
Karl
Karl le 18 Juil 2011
Thanks for giving this suggestion Ping, I ended up having to go back and modify a different section of my code in the same program and found this particular fxn to be much easier to use. :)

Connectez-vous pour commenter.

Plus de réponses (2)

Sean de Wolski
Sean de Wolski le 12 Juil 2011
string = 'hello world'
sm3 = string(1:end-3); %string removing three letters.

Karl
Karl le 12 Juil 2011
Hey folks, thanks so much for your helpfulness. I really did not expect so many responses so fast! Its wonderful!
For those with similar desires here is the fallout:
I originally wanted to use the fileparts command as it seemed to be a very handy way to do things (also clued me in that I could open files from the non-current folder). I had trouble though:
\Testing\Cyclohexane.csv became "\Testing" "Cyclohexane" ".csv"
When I went back and tried to writeout a file in a test using:
strcat(pathstr, name, 'added.txt');
I got:
...\Current Folder\\TestingCyclohexaneadded.txt
Obviously matlab wasn't to happy about this crazy file name with the double backslashes. I was able to fix the missing slash by just shoving an extra in the concatenation.
Ultimately I decided to just stick with the file name and use Sean de's solution to just clip off the extension and then concatenate onto the file.
filename = filename(1:end-4);
filename = strcat(filename,' extra.txt');
Which works quite nicely.
Thanks again for all the help and your time folks! Karl

Catégories

En savoir plus sur Loops and Conditional Statements dans Help Center et File Exchange

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by