Code to edit a file name?

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 件のコメント

Fangjun Jiang
Fangjun Jiang 2011 年 7 月 12 日
You need to provide an example of your file names and the expected pattern or new file names.
B_Richardson
B_Richardson 2011 年 7 月 12 日
strtok does just that

サインインしてコメントする。

 採用された回答

Ping
Ping 2011 年 7 月 12 日

1 投票

you can call [pathstr, name, ext] = fileparts(filename) to seperate filename and extension.

1 件のコメント

Karl
Karl 2011 年 7 月 18 日
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. :)

サインインしてコメントする。

その他の回答 (2 件)

Sean de Wolski
Sean de Wolski 2011 年 7 月 12 日

1 投票

string = 'hello world'
sm3 = string(1:end-3); %string removing three letters.
Karl
Karl 2011 年 7 月 12 日

0 投票

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

カテゴリ

ヘルプ センター および File ExchangeEnvironment and Settings についてさらに検索

製品

質問済み:

2011 年 7 月 12 日

Community Treasure Hunt

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

Start Hunting!

Translated by