就像标题所说的那样。如何在matlab单元格数组中找到特定元素的索引?单元格数组的内容包含字符串和数字。
玩具示例:
database = cell(4,2)
database(1,1:2) = {'Song', 'Rating'}
database(2:4,1) = {'Song1'; 'Song2'; 'Song3'}
database(2:4,2) = {1; 2; 5}
functionIWant(database, 'Song2') % Should return [3,1] or something similar
我知道我可以将它转换为矩阵,迭代它,从而找到正确的索引。我想知道是否有更快的方法直接在单元阵列上工作。
答案 0 :(得分:3)
试试这个 -
[r,c] = find(strcmp(database,'Song2'))
输出 -
r =
3
c =
1
答案 1 :(得分:1)
你可以尝试这样的事情:
str='Song2';
Match=cellfun(@(x) strcmp(str, x), database, 'UniformOutput', 0);
获取匹配的索引:
[row, col]=find(cell2mat(Match))
如果你想要第2列的匹配元素,只需执行:
database(row, 2)