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



在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]]

我该怎么做?

谢谢你的帮助。

这个解决方案可能不简单,但它会起作用。基本上,只需遍历多维单元格数组中的每个单元格,就可以找到单词的位置:

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')

输出:

ans =
     1     1
     3     1

相关内容

  • 没有找到相关文章

最新更新