在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]]
我该怎么做?
感谢您的帮助。
答案 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')