Matlab 基于数组的图像检索
我正在进行一个名为“使用sift进行图像检索”的项目,我想从文件系统中检索图像。我使用的逻辑是:Matlab 基于数组的图像检索,matlab,Matlab,我正在进行一个名为“使用sift进行图像检索”的项目,我想从文件系统中检索图像。我使用的逻辑是: 将图像文件名传递给函数 检查要满足的条件 如果满足,则将文件名存储在数组中 当我显示数组时,我会得到文件名,例如F:\SIFT_yanto\demo data\batting.jpg,数组长度为36。现在我的问题是如何从该数组中提取文件名并显示它?如果我使用for循环作为 for j=1:numel(array) 我在数组中得到36个元素,而它只是一个图像的名称…字符串是一个类型为char
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不会在单元格数组中显示完整字符串,如果它太长,无法在屏幕上显示一行,它将显示数组的大小和类型,这就是它所做的。另外,构建数组的方式一定有点古怪,因为在每个字符串之前的单元格数组中都有空矩阵。