2016-06-17 18 views
0

私はmatlabで新しくファイルを移動する際にいくつかの問題があります ファイルのリストがあり、同じ名前のフォルダに移動したいとします。 TXT --->私はいくつかのコードをチェックしているが、私は 事前matlabで同じ名前のフォルダにファイルを移動します

%load and save only txt files 
%just the files in struct 
ls_al = dir; 
justfiles = ls_al(~[ls_al.isdir]); %only for files 
%save only folders by removing . and .. 
%folders in cell 
d = dir(pwd); 
isub = [d(:).isdir]; %# returns logical vector 
nameFolds = {d(isub).name}'; 
nameFolds(ismember(nameFolds,{'.','..'})) = []; 
% move file to folder 
for i=1:numel(justfiles) 
filename=fullfile(justfiles.name(i)); 
foldername=fullfile(nameFolds(i)); 
movefile(filename,foldername); 
end 

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 

にありがとうMOVEFILEコマンドに問題がある1 をフォルダに???多くの参照ブロックによる の後に続く複数の構造要素のフィールド参照はエラーです。

filename=fullfile(justfiles.name(i)); 

これは次のようになります:ここでフルファイルの

filename=justfiles(i).name; 

ご利用には、同様に間違っている - あなたはjustfiles variiable間違ってindedingている - あなたはあなたのループでエラーが発生している

答えて

1

私はそれを削除しました。単一の引数だけを渡しています - 提供するフォルダとファイル名の正しい使い方については、help fullfileを参照してください。

+1

この文脈では必要ではないかもしれないが、関数がファイルセパレータを修正するため、単一の引数を 'fullfile'に渡すと便利です(' fullfile( 'C:\ test/test \ test.exe') 'ファイルシステムに適しています)。確かに、最初に起こってはならない問題が修正されていますが、これは素晴らしいアプリケーションです。 – excaza

関連する問題