我正在开发一个名为使用sift进行图像检索的项目,我希望从文件系统中检索图像。我使用的逻辑是:
当我显示数组时,我得到文件名,例如。 F:\ SIFT_Yantao \ demo-data \ batting.jpg和数组的长度为36现在我的问题是如何从该数组中提取文件名并显示它?如果我用循环作为..
for j=1:numel(array)
我的数组中有36个元素,而它只是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