ファイルの名前 一気に変更

61 views (last 30 days)
Qiong Ma
Qiong Ma on 5 Aug 2020
Commented: Qiong Ma on 6 Aug 2020
例えば、以下の名前を持つファイルがあります。どう一気にその真ん中の"r10"を外しますか。
VOI_A_r10p0001.mask
VOI_A_r10p0001_1.mat
VOI_A_r10p0001_2.mat
VOI_A_r10p0001_1_eig.mat
VOI_A_r10p0001_2_eig.mat
もう一種類の名前は以下のようになっています。どう一気に"A_"の後ろに"p0001_"を加えますか。
VOI_A.mask
VOI_A_1.mat
VOI_A_2.mat
VOI_A_1_eig.mat
VOI_A_2_eig.mat
どうぞよろしくお願い致します。
  1 Comment
Qiong Ma
Qiong Ma on 6 Aug 2020
よく勉強になりました。大変ありがとうございました!

Sign in to comment.

Accepted Answer

Takumi
Takumi on 5 Aug 2020
ファイル名を変更するにはmovefile関数を使います.また指定文字列を削除するにはerase関数が使えます.
以下のファイル
VOI_A_r10p0001.mask
VOI_A_r10p0001_1.mat
VOI_A_r10p0001_2.mat
VOI_A_r10p0001_1_eig.mat
VOI_A_r10p0001_2_eig.mat
からr10を取り除くには次のようにすると良いでしょう.
fileList = dir('VOI_A_*'); % VOI_A_から始まるファイル取得
for i=1:length(fileList)
str = fileList(i).name; % ファイル名
TF = contains(str,"r10"); % r10を含んでいるかどうか
if TF
newStr = erase(str,"r10"); % r10を取り除く
movefile(str,newStr); % ファイル名変更
end
end
また以下のファイル
VOI_A.mask
VOI_A_1.mat
VOI_A_2.mat
VOI_A_1_eig.mat
VOI_A_2_eig.mat
のA_の後ろにp0001_を加えるにはinsertAfter関数が使えます.
fileList = dir('VOI_A_*'); % VOI_A_から始まるファイル取得
for i=1:length(fileList)
str = fileList(i).name;
TF = contains(str,"p0001_"); % p0001_がすでに含まれているかどうか
if ~TF
newStr = insertAfter(str,"A_","p0001_")
movefile(str,newStr)
end
end

More Answers (0)

Categories

Find more on 環境と設定 in Help Center and File Exchange

Products

Community Treasure Hunt

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

Start Hunting!