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

例えば、以下の名前を持つファイルがあります。どう一気にその真ん中の"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 件のコメント

Qiong Ma
Qiong Ma 2020 年 8 月 6 日
よく勉強になりました。大変ありがとうございました!

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

 採用された回答

Takumi
Takumi 2020 年 8 月 5 日

2 投票

ファイル名を変更するには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

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File ExchangeAuthor Block Masks についてさらに検索

製品

質問済み:

2020 年 8 月 5 日

コメント済み:

2020 年 8 月 6 日

Community Treasure Hunt

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

Start Hunting!