使用数组的图像检索

时间:2013-04-03 10:57:03

标签: matlab

我正在开发一个名为使用sift进行图像检索的项目,我希望从文件系统中检索图像。我使用的逻辑是:

  1. 将图片文件名传递给函数。
  2. 检查是否满足条件。
  3. 如果满意将文件名存储在数组中
  4. 当我显示数组时,我得到文件名,例如。 F:\ SIFT_Yantao \ demo-data \ batting.jpg和数组的长度为36现在我的问题是如何从该数组中提取文件名并显示它?如果我用循环作为..

        for j=1:numel(array)
    

    我的数组中有36个元素,而它只是1个图像的名称......

1 个答案:

答案 0 :(得分:2)

字符串是char类型的数组,因此您(基本上)尝试遍历字符串中的字符。如果要创建一个字符串数组,每个字符串可能有不同的长度,那么您需要使用cell array of strings。一个例子如下:

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

要附加到现有的单元格数组,您可以执行以下操作:

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

如果你知道数组在循环之前有多少项,那么你可以使用

myArray = cell(numberOfElements, 1);
for myLoopCounter = something
    myArray{myLoopCounter} = theNewString;
end