1. ホーム
  2. matlab

[解決済み] Matlabでファイル名を変更する - movefileがファイルの代わりにフォルダを作成する

2022-02-15 09:32:40

質問

現在の作業ディレクトリには 'dynamics_sorted' というフォルダがあり、その中には 300 個のサブフォルダ ('001'、'002' など) があり、それぞれのフォルダにはいくつかのファイルがありますが、nifti (.nii) ファイルは 1 つだけしかありません。

番号付けされた各サブフォルダーから単一のniftiファイルを、現在の作業ディレクトリにある「dynamics_sorted_NIFTI」に移動する必要があります。

その際、各niftiファイルの名前を親フォルダの番号に変更する必要があります。

movefileのシンタックスでは、引数が両方ともファイル名である場合、ファイルの名前が変更されます。

http://uk.mathworks.com/help/matlab/ref/movefile.html#zmw57dd0e528520

for Ticker = 1:300;
FindNiftiFile = ['dynamics_sorted/',num2str(Ticker,'%03.0f'),'/*.nii'];
PutNiftiFile = ['dynamics_sorted_NIFTI/',num2str(Ticker,'%03.0f'),'.nii'];
movefile(FindNiftiFile,PutNiftiFile);
end

しかし、このコードはファイル名を変更せず、ファイル名はそのままで、番号のついたフォルダーに配置します。

どこでエラーになっているのか、何かアドバイスがあれば教えてください。

解決方法を教えてください。

それは、ソースファイルを見つけるために使用されるワイルドカードが原因です。このため、ワイルドカードが単一ファイルのみを対象とするものであっても、Matlabはソースが単一ファイルでないと仮定してしまうと推測されます。