我使用的脚本在循环中生成字符串集合:
'folder1/im1'
'folder1/im2'
...
'folder1/im3'
我将字符串赋值给变量,当我尝试执行img = dicomread(file);
函数时,我收到以下错误:
Error using dicomread>newDicomread (line 164)
The first input argument must be a filename or DICOM info struct.
Error in dicomread (line 80)
[X, map, alpha, overlays] = newDicomread(msgname, frames);
Error in time (line 14)
img = dicomread(file);
但是,使用命令行我不会收到错误:img = dicomread('folder1/im1')
。
代码是下一个:
for i=1:6 %six cases
nameDir = strcat('folder', int2str(i));
dirData = dir(nameDir);
dirIndex = [dirData.isdir];
fileList = {dirData(~dirIndex).name}; % list of files for each directory
n = size(fileList);
cd(nameDir);
for x = 1:n(2)
img = dicomread(strcat(pwd(), '/', fileList(x)));
end
cd('..');
end
可能是什么错误?
答案 0 :(得分:1)
你现在已经知道了,不是吗。
根据您所写的内容,进行测试
img = dicomread('folder1/im1');
当你遇到麻烦时
img = dicomread(file);
您需要实际测试遇到问题的线路。我建议:
在test.m中设置一个断点
img = dicomread(file)
。当你到达那一行时,你可以看到file
等于什么。同时执行whos file
以确保它是类char
,而不是单元格数组或随机内容。
如果您仍需要帮助,请修改原始帖子并显示将这些字符串分配到file
的代码,并告诉我们在命令提示符下键入img = dicomread(file)
时会发生什么。