MATLAB-查找位于嵌套单元格数组中的条目的多维索引

时间:2018-11-14 22:52:30

标签: matlab indexing cell-array

在MATLAB中,说我有一个如下的单元格数组:

cell_arr = {{'a', 'b', 'c'}, {'d', 'e', 'f', 'g', 'h'}, {'a', 'b', 'c'}};

我想要一种方法来查找单元格数组中发生'a'的所有位置。所以像

where(cell_arr, 'a'); % returns e.g., [[1 1] ; [3 1]]

我该怎么做?

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

此解决方案可能并不简单,但可以解决。基本上,只需遍历多维单元格数组中的每个单元格,然后找到单词的位置:

libvlc.dll
libvlc.lib
libvlc.exp

示例

function location = where(cell_arr, word)

% initialize location
location = zeros(sum(char([cell_arr{:}]) == word),2);

% loop through cell_arr to find the location
count = 0;
for i = 1:length(cell_arr)
    for j = 1:length(cell_arr{i})
        if cell_arr{i}{j} == word
            count = count + 1;
            location(count,:) = [i j];
        end
    end
end
end

输出:

where(cell_arr, 'a')