我有单元阵列是如下:如何在Matlab中查找包含目标矢量的数值单元格的行?
S{1} = [10,20,30,40,50];
S{2} = [10,20,40,50];
S{3} = [10,50,510];
S{4} = [10,20,70,40,60];
S{5} = [20,40];
和,我有一个目标矢量:
T=[10,70]
我需要找到细胞T是那些的子项的行。 对于上面的例子的结果是:4
因为T是第4行
我有单元阵列是如下:如何在Matlab中查找包含目标矢量的数值单元格的行?
S{1} = [10,20,30,40,50];
S{2} = [10,20,40,50];
S{3} = [10,50,510];
S{4} = [10,20,70,40,60];
S{5} = [20,40];
和,我有一个目标矢量:
T=[10,70]
我需要找到细胞T是那些的子项的行。 对于上面的例子的结果是:4
因为T是第4行
的子项获取针对T
每个小区匹配的计数和查看哪些细胞具有匹配计数等于元素的数目T
,表明那些细胞具有来自T
的所有元素。这里的假设是我们在每个单元中都有独特的元素。
这里的执行 -
find(cellfun(@(x) nnz(ismember(x, T)), S) == numel(T))
或由@Leander Moesinger
建议我们可以得到每个元素的匹配关T
跨在每个单元中的所有元素,然后简单地使用all()
,像这样 -
find(cellfun(@(x) all(ismember(T,x)),S))
的回答中找不到'x'和't'找到(cellfun(@(x)所有(ismember(T,x)),S))'做同样的事快一点? –
非常感谢你 –
@LeanderMoesinger可爱!应该更快。谢谢!更新。 – Divakar
只是在我的[你以前的非常类似的问题](https://stackoverflow.com/q/44408921/2586922) –