Сортировка файлов имен изображений в Matlab? - PullRequest
3 голосов
/ 02 июня 2011

У меня есть два разных типа dicom (файлы медицинских изображений) в одной папке. Я хочу отсортировать их по двум различным массивам: один для SE006, а другой для SE014.

    MR-ST001-SE006-0001.dcm... MR-ST001-SE006-0021.dcm  
    MR-ST001-SE014-0001.dcm... MR-ST001-SE014-0013.dcm 

Я использовал что-то вроде этого кода ниже, но это неправильно, я думаю, что у меня есть некоторые синтаксические ошибки.

  if image == 'MR-ST001-SE006-%4.4.dcm'
      SE006(end+1) = image 
  if image == 'MR-ST001-SE014-%4.4.dcm'
      SE014(end+1) = image 

У кого-нибудь есть советы, которые помогут улучшить это, чтобы он работал?

Ответы [ 2 ]

4 голосов
/ 02 июня 2011

Вы можете прочитать все файлы в массив ячеек с помощью команды DIR , а затем использовать CELLFUN для векторизации решения из @ jonsca.

files = dir('MR-ST001-SE*.dcm');
dcmnames = {files(:).name}';
idx06 = ~cellfun(@isempty,strfind(dcmnames,'SE006'));
idx14 = ~cellfun(@isempty,strfind(dcmnames,'SE014'));
SE006 = dcmnames(idx06);
SE014 = dcmnames(idx14);
2 голосов
/ 02 июня 2011

Использование комбинации strfind () и isempty () с блоком if/else if должно отсортировать их.

 if ~isempty(strfind(yourstr,'SE006'))
     #add it to your list
 end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...