大量のファイルをイン​プットするコードを簡​潔に書くことは可能で​しょうか?

nrun = 1; % enter the number of runs here
jobfile = {'C:\0spm Caltech\normalization_job.m'};
jobs = repmat(jobfile, 1, nrun);
inputs = cell(2, nrun);
for crun = 1:nrun
inputs{1, crun} ={'C:\0spm Caltech\data\0051456\meanrest.nii,1'};
inputs{2, crun} = {'C:\0spm Caltech\data\0051456\rrest.nii,1'
'C:\0spm Caltech\data\0051456\rrest.nii,2'
'C:\0spm Caltech\data\0051456\rrest.nii,3'};
end
spm('defaults', 'FMRI');
spm_jobman('run', jobs, inputs{:});
ファイルをインプットするために
上記のコードでは3個のファイルを読みこんでいますが、
150個のファイルを読みこむ方法を教えていただきたいです。
'C:\0spm Caltech\data\0051456\rrest.nii,150'までのファイルを読みこむ必要があります。
よろしくお願いします。

 Accepted Answer

michio
michio on 10 Dec 2019
Edited: michio on 10 Dec 2019

1 vote

spm の機能には詳しくないのですが、inputs にファイル名を並べるのであれば
for crun = 1:nrun
inputs{1, crun} ={'C:\0spm Caltech\data\0051456\meanrest.nii,1'};
inputs{2, crun} = cell(150,1);
for ii = 1:150
inputs{2,crun}{ii} = ['C:\0spm Caltech\data\0051456\rrest.nii,' num2str(ii)];
end
end
でどうでしょう。

1 Comment

YASUNORI HAMAGUCHI
YASUNORI HAMAGUCHI on 11 Dec 2019
ありがとうございます!!
処理を実行することが出来ました。
matlab初心者でコードの書き方がわからず、悩んでましたが、
解決しました。

Sign in to comment.

More Answers (1)

YASUNORI HAMAGUCHI
YASUNORI HAMAGUCHI on 11 Dec 2019

0 votes

重ねて質問してもよろしいでしょうか。
matlabbatch{1}.spm.spatial.normalise.estwrite.subj.vol = {'C:\0spm Caltech\data\0051456\meanrest.nii,1'};
matlabbatch{1}.spm.spatial.normalise.estwrite.subj.resample = cell(150,1);
for ii = 1:150
matlabbatch{1}.spm.spatial.normalise.estwrite.subj.resample{ii} = ['C:\0spm Caltech\data\0051456\rrest.nii,' num2str(ii)];
end
ご回答を参考に別の箇所でもコードを書いてみたのですが、うまく行きません。
下線部は何か間違っていますか。
よろしくお願いいたします
matlabbatch{1}.spm.spatial.normalise.estwrite.subj.resample = {
'C:\0spm Caltech\data\0051456\rrest.nii,1'
'C:\0spm Caltech\data\0051456\rrest.nii,2'
'C:\0spm Caltech\data\0051456\rrest.nii,3'}
このように150個のファイルを読みこむものです。

2 Comments

michio
michio on 11 Dec 2019
コードに気になる点は特に見当たらないですが、、エラーメッセージなどあるともしかしたら・・。spm 特有の何かに起因しているのであれば、私には経験が無いので他の方のコメントを待ちましょう。
YASUNORI HAMAGUCHI
YASUNORI HAMAGUCHI on 11 Dec 2019
ご丁寧にありがとうございます。
そのようにさせていただきます。
ありがとうございました。

Sign in to comment.

Categories

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!