Azzera filtri
Azzera filtri

Code to edit a file name?

8 visualizzazioni (ultimi 30 giorni)
Karl
Karl il 12 Lug 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 Commenti
Fangjun Jiang
Fangjun Jiang il 12 Lug 2011
You need to provide an example of your file names and the expected pattern or new file names.
B_Richardson
B_Richardson il 12 Lug 2011
strtok does just that

Accedi per commentare.

Risposta accettata

Ping
Ping il 12 Lug 2011
you can call [pathstr, name, ext] = fileparts(filename) to seperate filename and extension.
  1 Commento
Karl
Karl il 18 Lug 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. :)

Accedi per commentare.

Più risposte (2)

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

Karl
Karl il 12 Lug 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

Categorie

Scopri di più su Loops and Conditional Statements in Help Center e File Exchange

Prodotti

Community Treasure Hunt

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

Start Hunting!

Translated by