Как прочитать несколько файлов nifti в Matlab с помощью spm_select? - PullRequest
0 голосов
/ 24 декабря 2018

Я хочу использовать spm_select внутри цикла в matlab для выбора нескольких файлов nifti.Тем не менее, кажется, что цикл не может работать правильно.

В каждой папке темы (всего 18 предметов в subjList = {'2', '3', '6', ...}, в каждой папке темы есть 4 прогона (вrunList = {'run1', 'run2', 'run3', 'run4'}. И в каждом прогоне можно выбрать 254 файла nitfi. Использование spm_select выглядит так:

tmp = spm_select('expand',fullfile(SCAN_dir, 'SCAN.nii'));
tmp = cellstr(tmp(6:180,:));  

Когда мой код выглядит следующим образом

if preprocess == 1
disp('------Preprocessing started------');
for subj = subjList
    disp(strcat('Subject:   ',subj));
    clear matlabbatch;
    cd(dataDir);
    cd(char(strcat(dataDir,subj)));        
    files = {};
    funFiles = {};
    filename = {};
    func = {};
    for i = 1: length(runList)

        files{i} = char(strcat(dataDir,subj,'/',runList{i}));
        filename{i} = dir(fullfile(files{i}, '*.nii'));
        funFiles{i} = strcat(filename{i}.folder,'/',filename{i}.name);
        %read multiple nii files 
         func{i} = spm_select('expand',funFiles{i});
         func{i} = cellstr(func{i}(1:254,:));       
    end; 
    funFiles = funFiles';
    func = func';
    preprocessing_job(funFiles);
end; 
disp('------Preprocessing ended------');
end;

Когда сценарии выполняются перед предложениями spm_select, все в порядке. Однако при полном запуске этой частикод, появляются следующие ошибки:

ошибка при использовании read_hdr (строка 36)

Ошибка чтения заголовочного файла "/".

ошибка nifti (строка 26)

vol = read_hdr (fname);

ошибка spm_select> spm_select_get_nbframes (строка 268)

N =nifti (файл);

ошибка spm_select> spm_select_expand (строка 254)

n = spm_select_get_nbframes (ifiles {i});

ошибка spm_select (строка 130)

varargout {1} = spm_select_expand (varargin {2});

ошибка main_analysis_script (строка 40)

func {i} = spm_select ('раскрыть', funFiles {i});

Я хочу знать причину первой ошибки о read_hdr.Есть ли проблемы с заголовочным файлом?Функциональный файл в формате 4D NIFTI.Я новичок в Matlab, хотя я знаю больше о пакете SPM.Я использую SPM12 и MatlabR2018b.Может ли кто-нибудь помочь мне цикл или предложения SPM?Большое спасибо и жду любых ваших слов.

...