Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 基于数组的图像检索_Matlab - Fatal编程技术网

Matlab 基于数组的图像检索

Matlab 基于数组的图像检索,matlab,Matlab,我正在进行一个名为“使用sift进行图像检索”的项目,我想从文件系统中检索图像。我使用的逻辑是: 将图像文件名传递给函数 检查要满足的条件 如果满足,则将文件名存储在数组中 当我显示数组时,我会得到文件名,例如F:\SIFT_yanto\demo data\batting.jpg,数组长度为36。现在我的问题是如何从该数组中提取文件名并显示它?如果我使用for循环作为 for j=1:numel(array) 我在数组中得到36个元素,而它只是一个图像的名称…字符串是一个类型为char

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

  • 将图像文件名传递给函数
  • 检查要满足的条件
  • 如果满足,则将文件名存储在数组中
  • 当我显示数组时,我会得到文件名,例如F:\SIFT_yanto\demo data\batting.jpg,数组长度为36。现在我的问题是如何从该数组中提取文件名并显示它?如果我使用for循环作为

        for j=1:numel(array)
    

    我在数组中得到36个元素,而它只是一个图像的名称…

    字符串是一个类型为
    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
    
    要附加到现有单元格数组,请执行以下操作:

    myArray = {}; % Initialise empty cell array
    for myLoopCounter = something
        myArray = [myArray {theNewString}];
    end
    
    如果知道在循环之前数组将有多少项,那么可以使用

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

    如何将值动态添加到字符串单元格数组?现在,当我显示单元格数组时,我得到的ans为[][1x36 char][[1x40 char],其中应该是文件名……这正是您应该看到的。MATLAB不会在单元格数组中显示完整字符串,如果它太长,无法在屏幕上显示一行,它将显示数组的大小和类型,这就是它所做的。另外,构建数组的方式一定有点古怪,因为在每个字符串之前的单元格数组中都有空矩阵。