0

我正在使用一个在循环中生成字符串集合的脚本:

'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

可能是什么错误?

4

1 回答 1

1

你现在已经想通了,不是吗。

根据你写的,你测试

img = dicomread('folder1/im1');

当你遇到的问题是

img = dicomread(file);

您需要实际测试您遇到问题的线路。我会推荐:

在 test.ma 中设置一个断点img = dicomread(file)。当你到达那条线时,你可以看到file等于。还要whos file确保它是类的char,而不是单元格数组或随机的东西。

如果您仍然需要帮助,请编辑您的原始帖子并显示您分配这些字符串的代码,并告诉我们在命令提示符下file键入时会发生什么。img = dicomread(file)

于 2012-06-13T21:07:53.953 回答