我有單元陣列是如下:如何在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) –