0

ファイルシステムから画像を取得したいsiftを使用して、画像取得と呼ばれるプロジェクトに取り組んでいます。私が使用するロジックは次のとおりです。

  1. 画像ファイル名を関数に渡します。
  2. 満たすべき条件をチェックします。
  3. 満足したら、ファイル名を配列に保存します

配列を表示すると、ファイル名が表示されます。F:\SIFT_Yantao\demo-data\batting.jpg と配列の長さが 36 になりましたが、私の問題は、その配列からファイル名を抽出して表示する方法です。forループを次のように使用すると..

    for j=1:numel(array)

配列に 36 個の要素を取得していますが、これは 1 つの画像の名前にすぎません...

4

1 に答える 1

2

文字列は type の配列であるcharため、(本質的に) 文字列内の文字をループしようとしています。それぞれの長さが異なる文字列の配列を作成する場合は、文字列のセル配列を使用する必要があります。以下に例を示します。

myArray = {'C:\some\path\to\a\file.ext', 'C:\some\path\to\another\file.ext'};
for jj = 1:numel(myArray)
    disp(myArray{jj}); % Display each element
end

既存の cell 配列に追加するには、次のようにします。

myArray = {}; % Initialise empty cell array
for myLoopCounter = something
    myArray = [myArray {theNewString}];
end

ループの前に配列に含まれるアイテムの数がわかっている場合は、使用できます

myArray = cell(numberOfElements, 1);
for myLoopCounter = something
    myArray{myLoopCounter} = theNewString;
end
于 2013-04-03T11:03:34.370 に答える