sprintf(Matlab)
快速提问 我想在Matlab中使用sprintf从50到70进行计数。此示例打印0101-0120sprintf(Matlab),matlab,printf,dicom,Matlab,Printf,Dicom,快速提问 我想在Matlab中使用sprintf从50到70进行计数。此示例打印0101-0120 for i = 1:20 filename = sprintf('Brain_01%02d.dcm', i); [X(:,:,1,i), amap] = dicomread(filename); end 如何将其更改为打印0151-0170?我想这应该可以: for i = 51:70 filename = sprintf('Brain_01%02d.dcm', i);
for i = 1:20
filename = sprintf('Brain_01%02d.dcm', i);
[X(:,:,1,i), amap] = dicomread(filename);
end
如何将其更改为打印0151-0170?我想这应该可以:
for i = 51:70
filename = sprintf('Brain_01%02d.dcm', i);
[X(:,:,1,i), amap] = dicomread(filename);
end
我猜这应该可以做到:
for i = 51:70
filename = sprintf('Brain_01%02d.dcm', i);
[X(:,:,1,i), amap] = dicomread(filename);
end
一开始答案似乎很明显,但似乎另一个问题可能与
X
的索引有关,如果i
不是从一开始的。在处理X
的预分配时,有一种方法可以解决这个问题
imgInds = 151:170;
di = dicominfo(sprintf('Brain_%04d.dcm',imgInds(1)));
X = zeros(di.Height,di.Width,1,numel(imgInds),class(dicomread(di))); % modify
for i = 1:numel(imgInds),
filename = sprintf('Brain_%04d.dcm', imgInds(i));
[X(:,:,1,i), amap] = dicomread(filename);
end
为了清楚起见,我认为最好使用
%04d
而不是01%02d
构建您的sprintf
。您应该在标记为modify
的行上相应地设置X
的大小,尤其是第三维度,因为我假设您的实际代码不会是1
答案起初似乎很明显,但另一个问题似乎与X
的索引有关,如果i
不是从一开始的,那么索引就会被破坏。在处理X
的预分配时,有一种方法可以解决这个问题
imgInds = 151:170;
di = dicominfo(sprintf('Brain_%04d.dcm',imgInds(1)));
X = zeros(di.Height,di.Width,1,numel(imgInds),class(dicomread(di))); % modify
for i = 1:numel(imgInds),
filename = sprintf('Brain_%04d.dcm', imgInds(i));
[X(:,:,1,i), amap] = dicomread(filename);
end
为了清楚起见,我认为最好使用
%04d
而不是01%02d
构建您的sprintf
。您应该在标有modify
的行上相应地设置X
的大小,尤其是第三维,因为我假设您的实际代码不会是1
谢谢您的回答!实际上,我需要做的(出于我的目的)是:
这使得计数从50开始。感谢您的回复!实际上,我需要做的(出于我的目的)是: 这使得计数从50开始