说我有一个单元格数组
round()
是否有一种智能方法可以在CELLARRAY =
{{[]} {[]} {[1 1 1]} {[]} {[]} {[1 1 1]};
{[]} {[]} {[1 1 1]} {[]} {[]} {[]};
{[]} {[]} {[]} {[]} {[]} {[]}}
A = {{[]} {[]} {[1 1 1]} {[]} {[]} {[]}}
中找到与CELLARRAY
匹配的行索引?我的答案是2?
答案 0 :(得分:3)
可能最快的方法是通过行循环,MATLAB的JIT编译器应该能够很好地优化它。
matches = false(1, size(CELLARRAY, 1));
for k = 1:size(CELLARRAY, 1)
matches(k) = isequal(CELLARRAY(k,:), A);
end
indices = find(matches);
或者,您可以使用类似cellfun
的内容为您执行操作,但可能会更慢
matches = cellfun(@(x)isequal(x, A), num2cell(CELLARRAY, 2));
indices = find(matches)