使用for循环,我可以读取文件夹中存在的所有'k'dicom文件。在每个切片上执行一些操作后,我需要将它们保存到另一个文件夹中。有人请帮我
names=dir(fullfile('C:\matlab\*.dcm'));
for k=1:size(names, 1)
I(:,:,k)=dicomread(names(k).name);
P=I(:,:,k);
M(:,:,k) = foperation(P);
%figure(k)
% imshow(M(:,:,k))
dicomwrite(M(:,:,k),'m_01.dcm') // what and how should i change this line to save all k files
end
我认为不可能将所有文件保存在一个命令中-您需要一个一个地保存它们。
我认为最好的解决方案是将输出文件保存为与输入相同的名称,但保存在不同的文件夹中。将文件保存在与阅读它们相同的循环中:
%Set output folder to C:\matlab\out
outdir = fullfile('C:\matlab\', 'out');
%Create folder if not exist
if ~exist(outdir, 'dir'), mkdir(outdir);end
for k=1:size(names, 1)
...
%Store M(:,:,k) to file names(k).name in the folder C:\matlab\out
dicomwrite(M(:,:,k), fullfile(outdir, names(k).name))
end