I wanted to copy dicom files from one place to another. But shows an error. How to fix it?
    6 ビュー (過去 30 日間)
  
       古いコメントを表示
    
The programme is attached here.
1 件のコメント
  Jan
      
      
 2017 年 12 月 30 日
				Without seeing the error message, the readers cannot know, what's going wrong. The screenshots are not really helpful to clarify details.
回答 (1 件)
  Star Strider
      
      
 2017 年 12 月 30 日
        In Windows, the dir command will usually return the first two values as dots, not a file name. When I run this code:
fnames = dir;
for i=1:length(fnames)
    folder=fnames(i).name
end
the first two values for ‘folder’ are:
folder =
    '.'
folder =
    '..'
See if setting your for loop to begin at 3 instead will help:
for i = 3:length(fnames)
You have not stated the error, so this is a guess as to what the problem actually is.
2 件のコメント
  Star Strider
      
      
 2017 年 12 月 30 日
				I suspect it is throwing the error on the asterisk, since it interprets that a a wildcard, and is interpreting ‘i’ as a character, further complicating your code:
fna=dir([folder,'\3D\','i*','.dcm']);
                         ↑
It is likely better to use sprintf than (incorrectly) concatenating the strings.
Try this:
fna = dir(sprintf('%s\\3D\\%d.dcm', folder, i));
Remember that the first two values for ‘folder’ are not valid file names, so consider something like this:
for i = 3:length(fnames)
    folder = fnames(i).name;
    fna = dir(sprintf('%s\\3D\\%d.dcm', folder, i-2));
    ...
end
Experiment to get the result you want.
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


