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 に答える