我在同一个文件夹中有两种不同类型的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 有没有人有什么建议可以帮助改进这一点,让它正常工作?
发布于 2011-06-02 09:22:37
您可以使用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);发布于 2011-06-02 05:14:33
将strfind()和isempty()与if/else if块结合使用应该会对它们进行排序。
if ~isempty(strfind(yourstr,'SE006'))
#add it to your list
endhttps://stackoverflow.com/questions/6207298
复制相似问题